【发布时间】:2016-05-05 00:32:53
【问题描述】:
我想要一个可以由任何线程创建的对象,但是当线程调用myObject.use() 时,它只能由该线程使用,直到调用myObject.release()。
我不想强迫开发人员必须将这个对象/类的所有方法调用包装在同步块中(我知道这可以用来近似这个功能),因为这可能会导致对象的误用,如果他们忘记将所有从myObject.use() 到myObject.release() 的调用包装在同一个同步块中。
这可能吗?
可以通过ReentrantLock 完成吗?
【问题讨论】:
-
定义由该线程使用。
-
对我来说听起来像一个对象池。
-
@SotiriosDelimanolis 线程中的某个实例调用 myObject 实例的方法
-
@ElliottFrisch 这可能是个好主意。你能多说一下为什么这比在类定义本身中实现这个功能更好吗?
-
如果另一个线程这样做了,您希望发生什么?我认为@ElliottFrisch 在这里是正确的。
标签: java multithreading concurrency thread-safety java-6