我已经理解这些并发控制如何以简单的英语运行。但是我更感兴趣的是如何在代码中完成悲观控制。这就是我的感受,让我们假设有两个用户正在尝试更新维基文档
悲观控制
在这里,我们被告知要使用交易。
Intent i = new Intent(getApplicationContext(), LoginActivity.class);
startActivity(i);
然而,这仍然容易覆盖以前的更新。我觉得必须在事务中进行第二次检查,看看是否在select语句之后发生了任何写操作,如果是回滚或其他提交。我是对的吗?
答案 0 :(得分:1)
你有两种选择:并发(悲观):
Table level Locking and Row Level Locking:
但请记住,如果您有多个用户,锁定可能会导致DEADLOCK。使用并发时需要考虑很多事情。祝你好运!
更新:
由于锁定可能导致死锁和其他并发问题,您可以实现签入和签出功能,当用户签出某些记录时,它会阻止其他用户访问查看相同的记录。