Я хочу объект, который может быть создан любым потоком, но в тот момент, когда поток вызывает myObject.use()
, он может использоваться только этим потоком до тех пор, пока не вызывается myObject.release()
.Есть ли способ сделать объект пригодным только для первого потока, который обращается к определенному методу?
Я не хочу, чтобы разработчикам приходилось обертывать все вызовы методов для этого объекта/класса в синхронизированных блоках (которые, как я знаю, могут использоваться для приближения этой функции), поскольку это может привести к неправильному использованию объекта если они забудут обернуть все вызовы от myObject.use()
до myObject.release()
в том же синхронизированном блоке.
Возможно ли это?
Это можно сделать с помощью ReentrantLock
?
Определить _used той нитью_. –
Звучит как * пул объектов * для меня. –
@SotiriosDelimanolis Какой-то экземпляр в потоке вызывает методы экземпляра myObject –