7
如何确定对象是否被锁定(同步),以免在Java中阻塞?
我有一个进程A,它在内存中包含一个带有一组记录(recordA,recordB等的表)的表。 现在,此过程可以启动许多影响记录的线程,有时我们可以有2个线程尝试访问同一记录-必须拒绝这种情况。具体来说,如果一条记录被一个线程锁定,我希望另一个线程中止(我不想阻止或等待)。 目前,我正在执行以下操作: synchronized(record) { performOperation(record); } 但这引起了我的问题...因为在Process1执行操作时,如果Process2进入其中,则它阻塞/等待同步语句,而在Process1完成时,它执行操作。相反,我想要这样的东西: if (record is locked) return; synchronized(record) { performOperation(record); } 关于如何实现这一目标的任何线索?任何帮助将非常感激。谢谢,