2013-04-06 3 views
0

Есть ли какое-либо понятие как синхронизированный класс в Java, который работает так же, как и монитор? Я не имею в виду синхронизированные методы! Что я знаю о классе Monitor, так это то, что когда поток использует какие-либо методы экземпляра этого класса, ни один другой поток не может иметь доступа к какому-либо методу этого объекта.Синхронизированный класс в Java (то есть монитор)

+0

позволяет предположить, что существует такая концепция. Для чего тебе это ? – giorashc

+0

Чтобы иметь такое поведение, сделайте все методы класса синхронизированными. –

+0

1.Curiosity 2.Simplicity в некоторых случаях –

ответ

4

Единственный способ, которым я могу думать, это сделать каждый метод synchronized. Нет ярлыка, который автоматически достигнет этого для всего класса.

+0

Я предполагаю, что это не приводит к такому же поведению, Давайте предположим, что этот класс имеет два метода M1 & M2, когда M1 выполняется Thread1, ни один другой поток (например, Thread2) не может выполнить этот метод , но они могут назвать другой метод M2, верно? –

+4

@ArianHosseinzadeh: Нет, неправильно. Ни один другой поток не может выполнять ** любой ** синхронизированный метод в том же экземпляре. – NPE

+0

@ArianHosseinzadeh каждый экземпляр имеет ровно один замок. –

Смежные вопросы