Java 锁的知识总结及实例代码
在java中锁主要两类:内部锁synchronized和显示锁java.util.concurrent.locks.Lock。当然目前已经内置到了JDK1.5及之后的版本中。线程在进入被synchronized保护的块之前自动获得这个锁,直到完成代码后自动释放锁。内置锁是互斥的,一个锁同时只能被一个线程持有,这也就会导致多线程下,锁被持有后后面的线程会阻塞。正因此实现了对代码的线程安全保证了原子性。这种情况下就将锁的控制交给了一个对象。trylock就是尝试获取锁,如果锁已经被其他线程占用那么立即返回false,如果没有那么应该占用它并返回true,表示拿到锁啦。因为trylock对锁并不是一直阻塞等待的,所以可以更多的规避死锁的发生。lockInterruptiblylockInterruptibly是在线程获取锁时优先响应中断,如果检测到中断抛出中断异常由上层代码去处理。
下载地址
用户评论