클래스의 문이 실행되는 동안이 블록이 Foo
및 정적 멤버에 대한 모든 액세스를 차단합니까? 실행 즉 클래스 개체에서 동기화가 전체 클래스 (및 해당 멤버)를 차단합니까
MyBlock:
synchronize(Foo.class)
{
// ... do something
}
,
MyBlock
동안, 다른 스레드는 오른쪽
Foo
에서 정적 메서드를 호출 할 수 없을 것이다?
좋습니다. 그런 다음 클래스와 멤버가 일정 시간 액세스하지 못하게하려면 어떻게해야합니까? 감사합니다
없음. 그것은 동기화가 작동하는 방식이 아닙니다. 기본적으로, 자물쇠를 취하는 객체는 그 자체로 관련이 없습니다. 여러개의 쓰레드가 같은 객체를 잠그려고 할 때만 의미가있다. – njzk2
또한 시도해 볼 수 있습니다. – njzk2
잘못되었습니다. 동일한 클래스 객체에 대해 잠그는 모든 실행 경로를 차단합니다. "클래스를 차단하는 것"과 같은 것이 없습니다. –