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