我的問題是,我有兩個線程t1和t2。他們兩個都做了一些計算,根據我的程序,我想使用併發技術阻塞,直到t1和t2完成任務,然後繼續。做的ExecutorService和CountDownLatch阻止主線程,直到他們完成?
我試過countdownLatch
,我讀了關於ExecutorService
的一個小例子。關於ExecutorService
我不喜歡的東西如下:
executor.execute(new RunnableClass(bgr,3))
executor.execute(new RunnableClass(bgr,7))
executor.shutdown();
if (executor.isTerminated()) {
print("terminated")
}
,並在「終止」從來沒有印刷,這意味着executorService
對象不會阻塞。
請讓meknow whih併發技術,我應該使用適合我的情況
認真閱讀API文檔。答案在這裏:http://docs.oracle.com/javase/7/docs/api/java/util/concurrent/ExecutorService.html#shutdown%28%29 –
'isTerminated()'不檢查執行者被關閉,它會檢查它是否被終止。正如JB Nizet所說,閱讀文檔,這很清楚。如果您對該文檔有任何疑問,請告訴我們。 – m0skit0
@ m0skit0我知道isterminated()並不檢查執行程序是否關閉或者沒有..我想阻塞,直到t1和t2完成執行,這樣我的cn繼續..請告訴 – user2121