我有一个进程 A,它在内存中包含一个表和一组记录(record A、 record B 等等)
现在,这个进程可以启动许多影响记录的线程,有时我们可以有2个线程尝试访问同一记录-这种情况必须拒绝。具体来说,如果一条记录被一个线程锁定,我希望另一个线程中止(我不希望 BLOCK 或 WAIT)。
目前我做的事情是这样的:
synchronized(record)
{
performOperation(record);
}
但是这给我带来了问题... ... 因为当 Process1执行操作时,如果 Process2进入,它将阻塞/等待同步语句,当 Process1完成时,它将执行操作。相反,我想要这样的东西:
if (record is locked)
return;
synchronized(record)
{
performOperation(record);
}
有什么线索吗? 如果你能帮忙,我将不胜感激。 谢谢,