用户判重

来源:5-15 推广单元服务功能实现

syqocean

2019-03-04

如果多个线程同时对同一个用户名进行判重,假如其中一个线程已执行完数据库的insert操作,而另一个线程读取到insert之前的状态,依然进行insert操作,必然违反唯一约束。这样的操作线程安全吗?

写回答

1回答

张勤一

2019-03-04

同学你好:

    你说的这种情况在单实例的情况下是不可能发生的。因为单实例对这里的操作不可能是起多个线程来操作的(所以,这并不是一个线程安全的问题)。对于多实例,如果某一方的操作过程卡住,那么,是有可能抛出唯一性约束异常的。这里使用 try catch 捕获异常,并给出保存出错的结果就可以了。


    欢迎来 QQ 群随时交流、讨论,也非常感谢同学的支持! 

1
9
62215082_0
请问下老师,您说的"因为单实例对这里的操作不可能是起多个线程来操作的(所以,这并不是一个线程安全的问题)",能具体说下吗,谢谢老师
2020-03-05
共9条回复

Spring Cloud微服务架构 设计实现广告系统

广告营销系统,未来大中型企业的标配

2136 学习 · 927 问题

查看课程