原帖由 "svenwang" 发表:
基本设想是一个线程往一个文件描述符写入数据,另外一个线程使用select/poll在文件描述符上等待数据。
想了解一下效率最高的通讯方式,是unix域套接字,pipe,或者其他?这里的效率是指响应时间上的。
原帖由 "sunlan" 发表:
用命名管道(也叫fifo)
原帖由 "柳五随风" 发表:
不考虑MULTIPLEX的话,共享就行了.
考虑MULTIPLEX的话,PIPE最快,但PIPE一般在KERNEL里面只有4K的空间,我见过最大的也就几个PAGE,考虑到PIPE的操作是原子的,所以PIPE不适合大数据交换.NAME PIPE也好不到那里去.SOCKET..........
原帖由 "JohnBull" 发表:
线程间最快的方法当然是公用内存!
比如用堆。
原帖由 "svenwang" 发表:
我是想用select/poll来等待数据,所以相同的地址空间/共享内存不能解决这个问题。
原帖由 "JohnBull" 发表:
不论是pipe还是socket,都要对数据进行至少2次复制。
而共用内存不用复制。
所以pipe或socket不可能比共用内存更快,就算用上信号量也一样。
欢迎光临 Chinaunix (http://bbs.chinaunix.net/) | Powered by Discuz! X3.2 |