我想在两个进程之间创建一个障碍。为此,我使用了两个信号量。当进程1到达屏障时,它通过发布第一个信号量来通知进程2。接收信号时的过程2,将第二个信号量作为确认发布。
代码看起来像这样......
过程Proc1:
sem_post( &sem_sig );
sem_wait( &sem_ack );
PROC2:
sem_wait( &sem_sig );
sem_post( &sem_ack );
现在我的问题是,这种方法是最有效的还是有更好的技术来实现两个进程之间的进程级别障碍?
答案 0 :(得分:2)
Linux实现pthread_barrier_t
。对我而言,它看起来非常适合您的需求。对于pthread_barrier_init
的调用,您只需指定此屏障是进程共享的。