标签:释放 -- 线程 导致 需要 nbsp 假设 必须 obj
导致死锁的原因
有两个或多个线程需要在几个共享对象上获取锁,这可能会导致死锁。
Thread1--->object1--->object2
Thread2--->object2--->object1
死锁的四个条件
1.互斥条件
2.不可剥夺条件
3.请求与保持条件
4.循环等待条件
解决方式
1.避免满足产生死锁的四个条件,采用正确的资源排序来避免死锁,该技术是给每一个需要锁的对象指定一个顺序,确保每个线程按这个顺序获锁。
例如:假设有两个对象分别为object1和object2,线程2必须获object1上锁,然后才能获取object2上面的锁,所以线程1一旦线程1 获得object1上面的锁 ,线程2就必须等待线程1释放锁,这样就能避免线程死锁
Thread1--->object1--->object2
Thread2--->object1--->object2
标签:释放 -- 线程 导致 需要 nbsp 假设 必须 obj
原文地址:https://www.cnblogs.com/pamne/p/11269216.html