Thread t1= new Thread(new Runnable() {
public void run() {
//perform Database stuff
}
});
t1.start();
initCache();//perform other Database stuff (Can this code be executed while thread 1 is running?)
如何確保在t1完成後initCache方法被強制等待?線程可變干擾
配置從我*有效的Java *和* Java併發在實踐*我的印象是,除了併發API的作者真的不讀書許多有效的理由使用像* join()*這樣的低級事物。我已經看到了巨大的多線程Java代碼庫,它完全沒有調用* join *或* yeld *以及其他一些我甚至不記得Java仍然存在的低級事物。 – Gugussee 2011-03-02 10:46:38
如果你想要做的只是等待一個線程完成,那麼就沒有必要將*另一個*概念引入它。引入CountDownLatch而不是在這種特殊情況下調用'join' *有什麼好處*?在許多情況下,高級抽象是很好的 - 但如果你只是*等待一個線程完成,我不會看到使用'join'有什麼問題。沒有任何證據表明OP需要一個獨立的線程... – 2011-03-02 10:51:01
我明白'wait()'和'notify()'/'notifyAll()'應該被避免並且被更好/更現代的替代品,但我也沒有看到在這裏使用'join()'的問題。另外:這是降價的原因嗎? – 2011-03-02 10:54:51