Здравствуйте, Аноним, Вы писали:
А>Подскажите, пожалуйста, какие еще есть реализации у Lock
глядя прямо в пакет java.util.concurrent.locks.*, вижу только одну, уже упомянутую реализацию
существуют ли другие — не знаю, но думаю, что другие не особенно-то и нужны
ReentrantLock же по своей природе — это "как бы" обычный synchronized, только реализованный в виде класса, предоставляющего дополнительные фичи
Re[4]: ReentrantLock();
От:
Аноним
Дата:
04.06.07 06:43
Оценка:
Здравствуйте, C0s, Вы писали:
C0s>глядя прямо в пакет java.util.concurrent.locks.*, вижу только одну, уже упомянутую реализацию C0s>существуют ли другие — не знаю, но думаю, что другие не особенно-то и нужны
C0s>ReentrantLock же по своей природе — это "как бы" обычный synchronized, только реализованный в виде класса, предоставляющего дополнительные фичи
Здравствуйте, C0s, Вы писали:
C0s>глядя прямо в пакет java.util.concurrent.locks.*, вижу только одну, уже упомянутую реализацию C0s>существуют ли другие — не знаю, но думаю, что другие не особенно-то и нужны
суть имени "reentrant" идет от reenter, т.е. этот лок позволяет потоку, уже захватившему лок, захватывать его еще сколько угодно раз. Существует (в природе, в java не встречал) соответственно и не-reentrant локи, которые блочатся при попытке их захвата из одного и того же потока несколько раз, что приводит к дедлокам.
Здравствуйте, C0s, Вы писали:
C0s>Здравствуйте, joybell0, Вы писали:
J>>ReentrantReadWriteLock.ReadLock и ReentrantReadWriteLock.WriteLock
C0s>а есть какой-то смысл использовать эти классы отдельно, вне контекста ReentrantReadWriteLock?
Неа Боюсь, нет не только смысла, но и возможности, т.к. в в их конструкторы (которые к тому же защищенные) надо передавать объект ReentrantReadWriteLock.