我需要实现一个在Java中使用等待条件的线程的测试,然后做一些事情来使条件为假,并且在该检查期间条件为假。具体情况如下。我是新手一般的线程,特别是Java中的线程(从未在任何编码语言中使用过线程)。场景是这样的:
你能指导我一个关于如何使用线程在Java中执行此操作的简单示例吗?
谢谢..
答案 0 :(得分:0)
一般方法是启动一个线程并使用一些同步机制来确定线程何时完成作业。 其中一种方法可以使用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();
}
}
答案 1 :(得分:0)
请检查{-1}}的java-doc。有一个很好的例子,您可以将其用作代码的基础。