日期:2014-05-16  浏览次数:20744 次

有名管道
我的程序是有两个线程,一个线程用来采集处理数据;另一个线程通过socket发送。两个线程之间用有名管道进行数据传递。处理数据只对管道写,socket只对管道读,但运行时发现写的次数比读的次数要多的多,因为用的阻塞方式,好像程序运行一段时间就停了,不再运行。我应该做什么处理以解决这种情况。
------解决方案--------------------
你的读写速度不匹配,你采集的那个线程数据量大吗,如果不大,你就优化下socket那个线程,比如多次读,一次发送。
------解决方案--------------------
你是为了学习 管道还是 实际环境使用?

既然是一个程序,多线程数据交互直接buff区上锁就行了
管道一般用来通知消息而非交互数据
------解决方案--------------------
是的,线程间通讯用啥IPC啊,直接内存队列加锁就行了。