Java에서 동기화된 잠금 코드 블록을 사용할 때 이 클래스는 싱글톤이어야 합니까?
高洛峰
高洛峰 2017-06-28 09:22:12
0
2
842

메서드나 코드 블록을 잠그면 최대 하나의 스레드가 이 코드를 동시에 실행할 수 있습니다. 두 개의 동시 스레드가 동일한 개체 개체의 잠긴 동기화 코드 블록에 액세스하면 한 번에 하나의 스레드만 실행할 수 있습니다. 다른 스레드는 이 코드 블록을 실행하기 전에 현재 스레드가 이 코드 블록 실행을 완료할 때까지 기다려야 합니다.

그럼 문제는 두 스레드가 이 개체의 서로 다른 인스턴스에 액세스하는 경우 여전히 차단됩니까?입니다.

高洛峰
高洛峰

拥有18年软件开发和IT教学经验。曾任多家上市公司技术总监、架构师、项目经理、高级软件工程师等职务。 网络人气名人讲师,...

모든 응답 (2)
Ty80

동기화는 다음 세 가지 방법으로 사용할 수 있습니다

  1. 잠글 개체를 지정하세요. 동기화된(인스턴스) {}와 유사합니다.

  2. 인스턴스 메소드에 직접적으로 작용합니다. 이는 현재 인스턴스를 잠그는 것과 동일합니다. 동기화 방법을 시작하기 전에 현재 인스턴스의 잠금을 획득해야 합니다.

  3. 정적 메서드에서 직접 작동합니다. 이는 동기화 방법에 들어가기 전에 현재 클래스를 잠그고 현재 클래스의 잠금을 획득하는 것과 같습니다.

위 1, 2의 경우. 동일한 개체 또는 동일한 인스턴스인 경우에만 스레드를 차단해야 합니다.

    扔个三星炸死你

    객체 인스턴스에 잠금이 추가됩니다. 서로 다른 개체에 추가된 잠금은 서로 영향을 주지 않습니다. 서로 다른 두 개체에 액세스하는 두 스레드는 서로를 차단하지 않습니다.

      최신 다운로드
      더>
      웹 효과
      웹사이트 소스 코드
      웹사이트 자료
      프론트엔드 템플릿
      회사 소개 부인 성명 Sitemap
      PHP 중국어 웹사이트:공공복지 온라인 PHP 교육,PHP 학습자의 빠른 성장을 도와주세요!