javadoc을 올바르게 해석하는지 잘 모르겠습니다. lock
메서드를 호출하고 성공적으로 잠금을 얻은 후에 ReentrantLock
을 사용하면 동기화 된 블록이없는 개체에 액세스 할 수 있으며 happend-before 관계가 마술로 적용됩니까?Java 잠금 및 happend-before 관계
ReentrantLock
과 제가 작업하고있는 개체 사이에 아무런 연결이 보이지 않습니다. 그래서 내가 안전하게 작업 할 수 있다고 믿기 어렵습니다. 하지만이 경우, 또는 내가 javadoc을 잘못 읽고 있습니까?
그래, 내가 독점적으로 처형되는 것을 이해하지만 같은 질문이 다른 스레드에서 볼 수 있다면 내 질문이 목표였습니다. –
당신이 말하는 것은 자바가 각 스레드에 변수를 저장하는 방법입니다. 잠금을 사용하거나'synchronized' 키워드를 사용하면 동기화가 보장됩니다. [이 그래서 질문] (http://stackoverflow.com/questions/5022100/when-does-java-thread-cache-refresh-happens) 나는 당신의 질문에 더 완벽하게 대답을 생각합니다. 특히 JLS의 17.1 절 –