2013-04-06 3 views
0

Java의 동기화 된 클래스로서 모니터와 동일한 개념이 있습니까? 나는 동기화 된 방법을 의미하지는 않는다! Monitor 클래스에 대해 알고있는 것은 스레드가이 클래스의 인스턴스의 메서드를 실행 중일 때 다른 스레드가이 개체의 메서드에 액세스 할 수 없다는 것입니다.Java (즉, 모니터)의 동기화 된 클래스

+0

그런 개념이 있다고 가정합니다. 너는 그것을 위해 무엇을 필요로 하는가? – giorashc

+0

이 동작을하려면 클래스의 모든 메서드를 동기화하십시오. –

+0

1.Curiosity 2. 어떤 경우에는 단순함 –

답변

4

내가 생각할 수있는 유일한 방법은 모든 메서드를 만드는 것입니다. synchronized. 전체 수업에 대해 자동으로이를 달성 할 수있는 지름길은 없습니다.

+0

같은 행동을하지는 않습니다. M1이 Thread1에 의해 실행될 때이 클래스에는 M1과 M2의 두 가지 메서드가 있다고 가정 해 봅시다. 다른 스레드 (예 : Thread2)는이 메서드를 실행할 수 없습니다. , 그들은 다른 방법 M2를 호출 할 수 있습니다, 그렇습니까? –

+4

@ArianHosseinzadeh : 아니, 틀렸어. 다른 스레드는 동일한 인스턴스에서 ** 모든 ** 동기화 된 메소드를 실행할 수 없습니다. – NPE

+0

@ArianHosseinzadeh 각 인스턴스에는 정확히 하나의 잠금이 있습니다. –