我有下面的应用程序,其中线程1从文件中读取并放入FIFO,然后线程2读取该FIFO并处理数据并发送到网络套接字,线程3从网络套接字接收数据,然后将结果保存到file2但有时收到的数据必须由thread2重新处理,所以问题是最好的做法是什么?我需要再次发送到FIFO吗?或者在线程3和线程2之间有另一个fifo?或两者都没有?
File1 - >线程1 - > FIFO - >线程2 - >网络插座
网络套接字 - >线程3 - > file2的
BTW,以上是我所拥有的一个示例,实际程序将有多个线程从FIFO读取并发送到网络,不确定使用FIFO这种方式是否会导致延迟或将成为瓶颈。感谢您的帮助。
答案 0 :(得分:0)
嗯,
是否有一个特殊原因导致选择系统调用将监视文件数组并且未使用套接字描述符?这可以简化代码,如here所示。
您使用的是pthreads还是类似于提升线程库......
这些线程确实是不同的进程......或者这是你使用pthread_cond_wait()的所有程序吗?