mis*_*yes 3 linux network-programming pipe thread-safety
我在我的 linux C 程序中创建了一个管道和一个线程。所以有2个线程:主线程和第二线程。
第二个线程将字节写入管道。
在主线程中,我为管道注册了一个EV_READ事件(libevent,它类似于readepoll/poll 中的事件)。当管道中有可用字节时,将触发该事件。
此管道使用中是否存在任何线程安全问题?
谢谢!
不。你有一个作者和一个读者,所以没有冲突。管道读取和写入保证是原子PIPE_BUF大小,因此即使您有多个读取器和写入器,只要每个读取/写入低于 PIPE_BUF 大小,您就不必做任何特殊的事情。