我有一个进程A,它在内存中包含一组带有一组记录的表(recordA,recordB等......)
现在,这个进程可以启动许多影响记录的线程,有时我们可以有2个线程试图访问同一条记录 - 这种情况必须被拒绝.特别是如果一个记录被一个线程锁定,我希望另一个线程中止(我不想BLOCK或WAIT).
目前我这样做:
synchronized(record)
{
performOperation(record);
}
Run Code Online (Sandbox Code Playgroud)
但是这导致了我的问题......因为当Process1正在执行操作时,如果Process2进入,则阻塞/等待同步语句,并且当Process1完成时,它执行操作.相反,我想要这样的东西:
if (record is locked)
return;
synchronized(record)
{
performOperation(record);
}
Run Code Online (Sandbox Code Playgroud)
有关如何实现这一目标的任何线索?任何帮助将非常感激.谢谢,