我有一个进程A,它在内存中包含一个表,其中包含一组记录(recordA、recordB等)。
现在,这个过程可能会启动许多影响记录的线程,有时我们可能有两个线程试图访问相同的记录-这种情况必须被拒绝。具体地说,如果一条记录被一个线程锁定,我希望另一个线程中止(我不想阻塞或等待)。
目前我在做这样的事情:
synchronized(record)
{
performOperation(record);
}
但这给我带来了麻烦。因为当Process1执行操作时,如果Process2进入,它会阻塞/等待同步语句,当Process1完成时,它会执行该操作。相反,我想要这样的东西:
if (record is locked)
return;
synchronized(record)
{
performOperation(record);
}
关于如何实现这一点,有什么线索吗?任何帮助都将不胜感激。谢谢,
https://stackoverflow.com/questions/1779795
复制相似问题