这取决于通信的性质。
- 它是双工的吗(即A与B对话,B与A对话)?
- 是数据通信还是 完成 通信?
等等。
线程间通信的最简单,最可取的形式就是等待其他线程的完成。使用
Future以下命令最容易做到:
ExecutorService exec = Executors.newFixedThreadPool(50);final Future f = exec.submit(task1);exec.submit(new Runnable() { @Override public void run() { f.get(); // do stuff }});
在第一个任务完成之前,第二个任务将不会执行。
Java 5+具有 许多
并发实用程序来处理这种事情。这可能意味着使用
linkedBlockingQueues,
CountDownLatch或使用许多其他许多符号。
要深入研究并发性,必须阅读Java
Concurrency in
Practice。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)