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 메소드가 강제로 대기하도록하려면 어떻게해야합니까?스레드와의 가변 간섭
타임 아웃으로 구성 할 수 있습니다 더 이상 * join() *과 같은 저수준의 것을 사용하는 많은 타당한 이유. 거대한 멀티 스레드 자바 코드베이스를 보았습니다. * join * 또는 * yeld *와 Java가 아직 기억하지 못하는 다른 저수준 호출에 대한 호출은 정확히 제로입니다. – Gugussee
스레드가 끝날 때까지 기다리는 것이 전부라면 다른 개념을 도입 할 필요가 없습니다. CountDownLatch를 도입 할 때 * join *을 호출하는 것보다 * 이점이 * 있습니까? 높은 수준의 추상화는 많은 경우에 훌륭합니다. 그러나 스레드가 끝나기를 기다리고 있다면'join '을 사용하여 무엇이 잘못되었는지 보지 못합니다. OP가 별도의 스레드를 필요로한다는 어떠한 증거도 없다 ... –
'wait()'와'notify()'/'notifyAll()'이 어떻게 피하고 더 나은/더 현대적으로 바뀌어야하는지 이해한다. 대안들도 있지만 여기에도'join()'을 사용할 때의 문제는 보이지 않습니다. 또한 : 이것은 왜 downvotes에 대한 이유입니까? –