让线程等待一个条件

com*_*uru 7 java multithreading

在GUI中,我有几个按钮.这些按钮分离了通过网络向服务器发送请求的工作线程.在单独的线程中,有一个侦听器接收来自服务器的响应.此响应通过Observer/Observable接口传递给工作线程正在执行方法的同一对象.

我需要做的是让工作线程等待来自与它们相关的服务器的响应.本质上,工作线程应该发送命令,然后等待一些指示接收到正确响应的条件.我可以想到多种方法(睡眠,轮询,等待,通知,监视器等),但有一种特殊的方法在这种情况下最好吗?

Sch*_*jer 6

我建议使用java.util.concurrent包中的高级"锁定"机制,例如CountDownLatch - "允许一个或多个线程等待直到在其他线程中执行的一组操作完成的同步辅助".