84669인 학습
152542인 학습
20005인 학습
5487인 학습
7821인 학습
359900인 학습
3350인 학습
180660인 학습
48569인 학습
18603인 학습
40936인 학습
1549인 학습
1183인 학습
32909인 학습
메서드나 코드 블록을 잠그면 최대 하나의 스레드가 이 코드를 동시에 실행할 수 있습니다. 두 개의 동시 스레드가 동일한 개체 개체의 잠긴 동기화 코드 블록에 액세스하면 한 번에 하나의 스레드만 실행할 수 있습니다. 다른 스레드는 이 코드 블록을 실행하기 전에 현재 스레드가 이 코드 블록 실행을 완료할 때까지 기다려야 합니다.
그럼 문제는 두 스레드가 이 개체의 서로 다른 인스턴스에 액세스하는 경우 여전히 차단됩니까?입니다.
拥有18年软件开发和IT教学经验。曾任多家上市公司技术总监、架构师、项目经理、高级软件工程师等职务。 网络人气名人讲师,...
동기화는 다음 세 가지 방법으로 사용할 수 있습니다
잠글 개체를 지정하세요. 동기화된(인스턴스) {}와 유사합니다.
인스턴스 메소드에 직접적으로 작용합니다. 이는 현재 인스턴스를 잠그는 것과 동일합니다. 동기화 방법을 시작하기 전에 현재 인스턴스의 잠금을 획득해야 합니다.
정적 메서드에서 직접 작동합니다. 이는 동기화 방법에 들어가기 전에 현재 클래스를 잠그고 현재 클래스의 잠금을 획득하는 것과 같습니다.
위 1, 2의 경우. 동일한 개체 또는 동일한 인스턴스인 경우에만 스레드를 차단해야 합니다.
객체 인스턴스에 잠금이 추가됩니다. 서로 다른 개체에 추가된 잠금은 서로 영향을 주지 않습니다. 서로 다른 두 개체에 액세스하는 두 스레드는 서로를 차단하지 않습니다.
동기화는 다음 세 가지 방법으로 사용할 수 있습니다
잠글 개체를 지정하세요. 동기화된(인스턴스) {}와 유사합니다.
인스턴스 메소드에 직접적으로 작용합니다. 이는 현재 인스턴스를 잠그는 것과 동일합니다. 동기화 방법을 시작하기 전에 현재 인스턴스의 잠금을 획득해야 합니다.
정적 메서드에서 직접 작동합니다. 이는 동기화 방법에 들어가기 전에 현재 클래스를 잠그고 현재 클래스의 잠금을 획득하는 것과 같습니다.
위 1, 2의 경우. 동일한 개체 또는 동일한 인스턴스인 경우에만 스레드를 차단해야 합니다.
객체 인스턴스에 잠금이 추가됩니다. 서로 다른 개체에 추가된 잠금은 서로 영향을 주지 않습니다. 서로 다른 두 개체에 액세스하는 두 스레드는 서로를 차단하지 않습니다.