c - 两个进程之间的障碍

标签 c linux pthreads semaphore

我想在两个进程之间创建一个屏障。为此,我使用了两个信号量。当进程 1 到达屏障时,它通过发布第一个信号量向进程 2 发出信号。进程 2 收到信号后,发布第二个信号量作为确认。

代码看起来像这样......

过程 1:

sem_post( &sem_sig );
sem_wait( &sem_ack );

过程2:

sem_wait( &sem_sig );
sem_post( &sem_ack );

现在我的问题是这种方法是否最有效,或者是否有更好的技术来实现两个进程之间的进程级屏障?

最佳答案

Linux 实现了pthread_barrier_t。对我来说,它看起来非常适合您的需求。对于 pthread_barrier_init 的调用,您只需指定此屏障是进程共享的。

关于c - 两个进程之间的障碍,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6835542/

相关文章:

C int 数据类型及其变体

c - 如何使用命令提示符运行 .exe 文件?

chdir 文件以使用 execl

linux - 用空格重命名文件

c - pthread_mutex_lock 锁定,但未设置所有者

c++ - 如何使用 vn_rdwr() API 组合 osx 内核扩展中的两个文件

c - 将函数作为参数传递给 pthread_once

MySQL 无法从 Linux 上安装的公共(public) IP 访问

c++ - boost::this_thread::sleep_用于使整个程序休眠

c - 为什么在 linux 中使用线程打印相同的 pid?