互斥锁
Java 提供了两种互斥锁用来解决在共享资源时存在的并发问题
一种方式是提供synchronized 关键字,当任务要执行被synchronized 关键字保护的代码片段的时候,它会检查所可用,然后获取锁,执行代码,释放锁。
第二种就是互斥锁,它属于reentrantlock类
它的lock(获取锁)与unlock(释放锁)的方法也可以实现同步
reentrantlock r = new reentrantlock();
r.lock 代替 synchronized {
r.unlock 代替 }
还有condition接口,condition c = r.condition();
其中有await和signal 代替wait 和notify方法
Lock 显式锁正如上面所说的,它比synchronized 更加灵活,而且有的时候解决一些特殊的问题。在使用Lock 时要注意在加锁后一定要释放锁,为了使锁能够得到释放 ,在遇到多个代码块同步时lock更加灵活。