我需要实现一个在Java中使用线程等待条件的测试,然后做一些事情使条件为false,在检查期间条件为false。确切的情况如下。我对线程很陌生,尤其是Java中的线程(在任何编码语言中从未使用过线程)。情况如下:
你能告诉我一个简单的例子,说明如何使用线程在Java中完成这个任务吗?
谢谢..
发布于 2013-12-30 14:24:36
一般的方法是启动一个线程,并使用一些同步机制来识别线程何时完成作业。其中一种方法可以是使用ExecutorService和awaitTermination,第二种方法可能是使用CountDownLatch:
CountDownLatch latch = new CountDownLatch(2);
Thread myThead1 = new MyThread(latch);
Thread myThead2 = new MyThread(latch);
myThread1.start();
myThread2.start();
// This will block execution until myThead1 and myThead2 will call countDown:
latch.await();完成作业后,线程实现应该调用countDown方法:
public class MyThread extends Thread {
private final CountDownLatch latch;
public MyThread(CountDownLatch latch) {
this.latch = latch;
}
public void run() {
// do your job here
latch.countDown();
}
}发布于 2013-12-30 20:29:23
请查看java的java.util.concurrent.locks.Condition。有一个很好的例子,您可以使用它作为代码的基础。
https://stackoverflow.com/questions/20840789
复制相似问题