线程间发消息
有几个接收线程,收到数据后发给另一个线程做数据处理。
问题1)
想实现windows里PostThreadMessage类似的功能,在线程间传递数据。查阅资料后,得知可用 信号量+消息队列 或者 pthread_kill+消息队列。但本人太菜,不知如何实现,请给出例子,谢谢。
问题2)
那几个接收线程,本人觉得不需要同步处理,而只需要在接收线程和数据处理线程间做同步。不知对不?
[解决办法]
1.先create一个msg Queue2.然后rcv thread收到msg之后就发给这个msg Q3.proc thread每次从这个msg Q中取一个data进行处理。对于data,如果有不同的类型的话,那么就要对类型进行判断,然后再做相应的处理,比方说,如果是typeA的话,那么就执行proc_A(),如果是typeB的话,就执行proc_B()
[解决办法]
1,管道1字节+select/epoll+加锁队列的异步通知架构
2,队列+互斥锁+条件变量的阻塞等待架构
自己选择一个。
[解决办法]