4

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

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

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

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

谢谢!

4

1 回答 1

5

不。你有一个作家和一个读者,所以没有冲突。管道读取和写入保证是原子PIPE_BUF大小的,因此即使您有多个读取器和写入器,只要每次读取/写入低于 PIPE_BUF 大小,您不必做任何特别的事情。

于 2013-07-01T18:15:21.420 回答