Re: синхронизация
От: aefimov Россия
Дата: 21.12.04 18:36
Оценка: -1
Здравствуйте,

А>1) Привильно ли я понимаю, что следующие два куска кода эквивалентны?


Нет. Синхронизация метода блокирует метод, синхронизация this блокирует инстанс объекта.

А>2) Если я хочу положить ЧАСТЬ данных внутри функции класса под тотже мьютекс что и synchronized методах я могу использовать synchronized(this). Так?


Нет. Синхронизация происходит по средствам семафоров, в качестве которых выступают объекты JVM. Cинхронизация по this — это синхронизация по инстансу объекта класса. Именно эту синхронизацию не рекомендуется использовать, так как это блокирует доступ к объекту целиком (в синхронизированных участках кода этого объекта будет всего один тред, причем, если участков много, то это приведет к тому, что все треды будут ждать пока какойнидуть один не выйдет из какого нибудь одного блока).


Спасибо!
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.