2011-08-15 2 views
6

C#에서 lock 키워드는 try/catch 블록과 Monitor 블록의 좋은 구문입니다.동기화 된 java 키워드는 어떻게 구현됩니까?

자바에서는 synchronized 키워드의 어떤 사용자가 어떤 동기화 클래스를 사용합니까?

편집 - 좀 더 파고 들었습니다. 동기화 된 것처럼 보이지만, monitorenter/monitorexit 바이트 코드 연산으로 컴파일됩니다. 이 의미론을 복제 한 클래스가 있습니까?

답변

4

클래스가 사용되지 않습니다. 이것은 JVM에서 처리하는 언어 구문입니다.

그러나 Java 5는 Lock 인터페이스와 여러 구현이있는 java.util.concurrent.locks을 도입했습니다. 샘플 사용법은 링크 된 문서를 참조하십시오.

+2

나는 좀 더 파고 들었다. 마치 monitorenter/monitorexit 바이트 코드 연산에 컴파일 된 것처럼 보인다. –

2

synchronized 키워드는 수정 된 항목이 JVM 내부의 잠금과 동기화되도록합니다. 내가 생각할 수있는 한, 구조화 된 클래스는 없으며 특정 OS 구조와 반드시 일치하지는 않습니다.

그러나 동기화 메커니즘 {} 블록을 입력/종료하는 데 사용되는 잠금 메커니즘에는 bytecode construct이 있습니다.

관련 문제