avatar

Catalog
java死锁

java的线程锁可以重入的锁,锁对象也可以不同

java
1
2
3
4
5
6
public void add(int m) {
synchronized (1ock) {
this.value += m;
synchronized (lock) {
this.another += m;
}}}

不同线程获取多个不同对象的锁可能导致死锁

image-20200808160118482

如何避免死锁

始终以LockA 和LockB也就是不要交叉使用

总结

死锁产生的条件
●多线程各自持有不同的锁,并互相试图获取对方已持有的锁

如何避免死锁:.
●多线程获取锁的顺序要一致

Author: kim yhow
Link: http://yoursite.com/2020/08/08/java死锁/
Copyright Notice: All articles in this blog are licensed under CC BY-NC-SA 4.0 unless stating additionally.
Donate
  • 微信
    微信
  • 支付寶
    支付寶