Dor*_*ori 10 java multithreading wait
我有一个Java Thread来处理与a的传出通信Socket.我只希望线程在有待发送的待处理输出时运行.假设我有一个Stack<String>等待发送的数据,我希望当有些东西被添加到堆栈时唤醒通信线程并在堆栈为空时进入休眠状态.这是最好的方法吗?
我看到的选项是;
wait()/notify()- 现在似乎是实现这种行为的旧方法Thread每次构建一个新的(昂贵的)任何建议都会很棒:)
BlockingQueue正是你要找的.take()当某个其他线程执行add/ 时,您的通信线程会阻塞并立即唤醒put.
这种方法有几个优点:您可以让多个线程(使用者)共享同一队列以增加吞吐量,并使多个线程(生产者)生成消息(消息传递).
| 归档时间: |
|
| 查看次数: |
2506 次 |
| 最近记录: |