동기화된 정적 메서드의 잠금 메커니즘
Java에서 동기화된 메서드는 언제든지 하나의 스레드만 특정 메서드를 실행할 수 있도록 보장합니다. 메커니즘에는 액세스를 동기화하기 위한 모니터 획득이 포함됩니다.
정적 메서드 동기화
특정 개체 인스턴스에 속하지 않는 정적 메서드의 경우 즉시 명확하지 않습니다. 동기화가 처리되는 방법. Java 문서에 따르면 "동일한 개체에 대해 동기화된 메서드를 두 번 호출하여 인터리브하는 것은 불가능합니다." 그렇다면 정적 메소드의 경우에는 어떻게 되나요?
클래스 객체 모니터 획득
JLS(Java 언어 사양)에서는 이 동작을 다음과 같이 명확히 설명합니다. ) 메소드에서는 메소드 클래스의 Class 객체와 연관된 모니터가 사용됩니다. 즉, 동기화된 정적 메서드가 실행될 때 해당 메서드가 정의된 클래스를 나타내는 클래스 개체와 연결된 모니터를 획득합니다.
간단히 말하면 정적 메서드의 동기화 키워드는 기본적으로 수업 그 자체. 따라서 언제든지 하나의 스레드만 특정 클래스에서 동기화된 정적 메서드를 실행할 수 있습니다. 이렇게 하면 클래스 수준 작업을 수행하는 동안 두 스레드가 인터리브될 수 없습니다.
위 내용은 Java에서 동기화된 정적 메소드는 어떻게 작동합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!