管道和螺纹安全

时间:2013-07-01 17:33:39

标签: linux network-programming thread-safety pipe

我在linux C程序中创建了一个管道和一个线程。所以有2个线程:主线程和第二个线程。

第二个线程将字节写入管道。

在主线程中,我为管道注册了一个EV_READ事件(libevent,它类似于epoll / poll中的read事件)。当管道中有可用字节时,将触发该事件。

此管道使用中是否存在任何线程安全问题?

谢谢!

1 个答案:

答案 0 :(得分:3)

没有。你有一个作家和一个读者,所以没有冲突。管道读写保证是原子级的PIPE_BUF大小,所以即使你有多个读写器,只要每个读/写低于PIPE_BUF大小,你就不需要做任何特殊的事情。