我在linux C程序中创建了一个管道和一个线程。所以有2个线程:主线程和第二个线程。
第二个线程将字节写入管道。
在主线程中,我为管道注册了一个EV_READ
事件(libevent,它类似于epoll / poll中的read
事件)。当管道中有可用字节时,将触发该事件。
此管道使用中是否存在任何线程安全问题?
谢谢!
答案 0 :(得分:3)
没有。你有一个作家和一个读者,所以没有冲突。管道读写保证是原子级的PIPE_BUF
大小,所以即使你有多个读写器,只要每个读/写低于PIPE_BUF大小,你就不需要做任何特殊的事情。