>Java >java지도 시간 >Java의 정적 메소드에서 `synchronized` 키워드 잠금은 무엇입니까?

Java의 정적 메소드에서 `synchronized` 키워드 잠금은 무엇입니까?

Patricia Arquette
Patricia Arquette원래의
2024-11-10 11:35:02576검색

What Does the `synchronized` Keyword Lock on in a Static Method in Java?

Java의 동기화된 정적 메서드: 클래스 또는 개체에 대한 잠금

객체와 연결된 인스턴스 메서드와 달리 정적 메서드는 명시적인 객체 참조. 그러면 다음과 같은 질문이 생깁니다. 정적 메소드가 동기화될 때 키워드가 클래스 또는 객체를 잠그나요?

Java 문서에 따르면 동기화된 메소드는 "동기화된 메소드를 두 번 호출하는 것이 불가능함"을 보장합니다. 같은 개체에 인터리브할 수 있습니다." 그러나 정적 메서드의 경우 연결된 개체가 없습니다.

클래스 개체에 대한 잠금 획득

명확하게 말하면 정적 메서드의 동기화 키워드는 클래스를 잠급니다. 객체 자체가 아니라 객체입니다. Java 언어 사양(섹션 8.4.3.6)에는 다음과 같이 명시되어 있습니다.

"클래스(정적) 메서드의 경우 해당 메서드의 클래스에 대한 Class 개체와 연결된 모니터가 사용됩니다."

따라서 두 스레드가 동일한 클래스에서 동기화된 정적 메서드를 실행할 때 직렬화되어 한 번에 하나의 스레드만 실행되도록 합니다.

요약하면 정적 메서드의 동기화를 이해하는 것이 중요합니다. 인스턴스 메소드와 다르게 작동합니다. 정적 메소드는 클래스 객체에 대한 잠금을 획득하여 공유 데이터에 대한 제어된 액세스를 제공하고 동시 실행을 방지합니다.

위 내용은 Java의 정적 메소드에서 `synchronized` 키워드 잠금은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.