Warning: Undefined global variable $debug in /var/www/ourcoders/tiny4cocoa/application/controllers/baseController.php on line 124
notOnlyCRUD 2019-11-28 00:00:00 发布的技术动态 - OurCoders (我们程序员)
notOnlyCRUD
2019-11-28 00:00:00 发布
#tlpi#
再刷刷PIPE,很古老也很经典的IPC方式

1. 当一次写的内容超过PIPE_BUF,就会有被其他写interleaved,不再能保证原子性;对于linux来说,PIPE_BUF默认是一页;
2. 内核中的缓冲区默认64k, 可调节;
3. 应用程序不应该依赖缓冲区大小;
4. 所有写端关闭之后,读端drain掉缓冲区内容便读到EOF,以此作为读端同步信号;
5. 向一个读端关闭的PIPE写会导致EPIPE,以此作为写端同步信号.
6. PIPE一般用于数据单向流动。全双工pipe可以用socketpair. python中multiprocessing.Queue通信用的是unix domain steam socket pairs(socketpair).