死锁

参考URL:Java并发性和多线程介绍

 

1.死锁:

一个线程调用方法A锁住了对象1,另一个线程调用方法B锁住了对象2,方法A要使用对象2,而方法B又要使用对象1,那么它们相互等待锁,死锁发生。注意,两个线程需要同时调用才会死锁。

例如,两个线程同时调用parent.addChild(child)和child.setParent(parent)方法,并且是同一个parent对象和同一个child对象,这两个方法都是同步方法,才有可能发生死锁。一般线程调度不可预测,死锁也仅仅是可能发生。多个线程的死锁,例如1等待2,2等待3,3等待4,4等待1。

2.数据库的死锁:

一个事务由多条SQL组成。

当在一个事务中更新一条记录,这条记录就会被锁住避免其他事务的更新请求,直到第一个事务结束。

当多个事务需要对一些相同的数据进行修改时,可能就会死锁。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值