我想编写一个多线程程序,线程之间可以相互通信,一旦某一线程接到其他线程的消息,需要进行响应,如果没有得到消息,需要执行自己的代码,
需要解决的问题是线程不能一直等待消息的到来,也就是说消息可以打断线程的正常运行,而且当自己发完消息之后,不用考虑对方如何回应,继续执行自己的代码我用过的方法:1 事件监听:遇到的问题是当某一线程发消息给其他线程时,他自己需要等待对方的响应
2 管道通信; 遇到的问题是等待消息的时候必须一直去读管道,请大家提出个方案,感激不尽~
需要解决的问题是线程不能一直等待消息的到来,也就是说消息可以打断线程的正常运行,而且当自己发完消息之后,不用考虑对方如何回应,继续执行自己的代码我用过的方法:1 事件监听:遇到的问题是当某一线程发消息给其他线程时,他自己需要等待对方的响应
2 管道通信; 遇到的问题是等待消息的时候必须一直去读管道,请大家提出个方案,感激不尽~
Java的线程同步技术有两种,一个是synchronized,也就是临界数据区加锁。另一个是wait/notify,也就是等待唤醒机制。两个线程之间的通信,一般采用临界数据区。至于管道,就是一个临界队列,加上生产/消费者模型,使用上面提到的两种同步技术,完全可以实现。
如果有实际问题,最好发上来,可以根据实际的要求,设计线程结构,好过这样空谈理论了。