采纳答案成功!
向帮助你的同学说点啥吧!感谢那些助人为乐的人
如果多个线程同时对同一个用户名进行判重,假如其中一个线程已执行完数据库的insert操作,而另一个线程读取到insert之前的状态,依然进行insert操作,必然违反唯一约束。这样的操作线程安全吗?
同学你好:
你说的这种情况在单实例的情况下是不可能发生的。因为单实例对这里的操作不可能是起多个线程来操作的(所以,这并不是一个线程安全的问题)。对于多实例,如果某一方的操作过程卡住,那么,是有可能抛出唯一性约束异常的。这里使用 try catch 捕获异常,并给出保存出错的结果就可以了。
欢迎来 QQ 群随时交流、讨论,也非常感谢同学的支持!
老师 这里没懂,为什么这种情况下单实例是不可能发生的,多线程是可以操作单实例的吧,请老师详细讲一下
那如果假如是多个客户端同时发起请求用户判重,是不是也有同样的问题
单实例内怎么会有操作用户数据这种问题呢,这显然是逻辑错误
登录后可查看更多问答,登录/注册
广告营销系统,未来大中型企业的标配
1.7k 14
3.3k 10
1.2k 10
1.3k 8
1.1k 8