06 2022 档案
摘要:Lock锁只能用于代码块,是显示锁,需要自己开启和关闭锁,一般在try中加锁,finally中解锁。synchronized可用于方法和代码块,是隐式锁,出了作用域会行解锁。可优先考虑使用Lock锁,调度性能相对高一点,并且提供了更多的子类。如可重入锁 ReentrantLock
阅读全文
摘要:多个线程各自占有一定的资源(拿到了对象锁),但又需要其他线程拥有的资源,互相等待对方释放资源,导致停止执行的情况。同时拥有两个以上的锁,就可能有死锁的问题。 产生死锁的四个必要条件: 1、互斥条件:一个资源每次只能被一个进程使用 2、请求与保持条件:一个进程因请求资源而阻塞时,对已获得的资源保持不放
阅读全文