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