多线程并发访问数据库中不同记录时应该采用什么办法?
1个回答
展开全部
多个线程在访问同一个数据库中的记录的时候,在大并发的情况下,一定要做好事务机制。要不然后果还是很扎心的。可能遇到这样的问题的时候首先想到的就是同步锁机制了。
并发产生的情况
以我的平时工作的经验来说,凡是涉及多线程的并发访问的问题一定要小心。因为一不小心就会产生死锁问题。平时编程的时候更要多注意这方面的问题。我们可以产生问题的情况是复杂的,两个线程争同一个对象会有问题,如果你只静态的方法,简单的逻辑不是问题,但是如果你的线程是修改静态变量的值,那应该是线程问题造成的。
java多线程并发
最经典的多并发的情况就是生产者和消费者的问题了吧。之前在学校学习操作系统的时候,经常因为类似的并发操作的问题想很久。后来工作的时候真正的实践以后,更能很好的体会到并发线程操作的难度。java是线程安全的,即对任何方法(包括静态方法)都可以不考虑线程冲突,但有一个前提,就是不能存在全局变量。如果存在全局变量,则需要使用同步机制。
并发连接数据库
其实在实际项目开发汇总,首先要做的就是避免多个线程共用一个数据库连接,这样会很容易出问题,最好是一个线程一个连接。在必要的时候需要线程同步或存储过程加锁。如果有比较复杂的事务操作的话就需要加锁了,如果不加的话就会出现你说的脏读、死锁等问题。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询