【发布时间】:2016-05-18 11:49:20
【问题描述】:
我使用CountDownLatch 来处理两个Java 线程。我的班级结构如下:
MainClass.java
ThreadOne.java
ThreadTwo.java
主类:
CountDownLatch latch = new CountDownLatch(2);
Thread thread = new Thread(new ThreadOne(latch));
thread.start();
Thread thread1 = new Thread(new ThreadTwo(latch));
thread1.start();
latch.await(20, TimeUnit.SECONDS);
主类等待其他两个线程完成它们的工作。一旦他们完成他们的工作,它就不会等到它的超时值(20 秒)。我的问题是,如果任何线程被破坏或损坏,那么CountDownLatch 将等待其超时值。有什么方法可以忽略该中断的线程并在不等待 20 秒的情况下继续前进?
【问题讨论】:
-
你的线程被破坏或损坏是什么意思?抛出异常?
-
将线程代码中的
latch.countDown()调用移动到finally块中,以便无论发生什么都会执行
标签: java multithreading countdownlatch