我有4个进程共享一个公共信号量,所有进程都有相同的优先级。锁内的关键区域具有读/写操作,包括fflush()调用。
在日志中,我观察到在发出来自特定进程的信号量之后,其他进程获取锁需要相当长的时间。
由于所有4个进程都在同一点被锁定,因此嵌入式设备存在性能问题。如果锁在线程之间共享,那么pthread_cond_t可以用来最小化切换时间。现在,可以做些什么来最大限度地减少流程之间的切换时间?
内核内部进程之间的上下文切换。上下文切换是内核调度器的工作,所以在这里除了尝试加快调度器上下文切换路径之外,您不能做太多事情。另一种选择可能是尝试解决问题,并通过减少锁争用(也许)来改进您的应用程序。