synchronized and reenterantLock 之间的异同

1、什么是线程安全

线程安全是一个多线程环境下正确性的问题,保证在多线程环境下共享的、可修改的数据的正确性

------> 可以推论出以下结论

------>1、状态不是共享的

------>2、不可修改

可以避免线程安全问题

2、sychronized的实现

修饰方法:即使用monitorenter和monitorexit将代码包起来

3、reenterLock的概念

可重入:如果一个线程要获取一个它已经获取到的锁的时候,这个获取动作自动成功

锁的持有是以线程为单位,并不是以次数

ReenterLock lock = new ReenterLock();
lock.lock();
try{
  //do something  
}
catch(Exception e){
  //异常处理  
}
fially{
  lock.unlock();  
}
原文地址:https://www.cnblogs.com/zhangchiblog/p/11121864.html