标签:一个 对象 内容 改变 习惯 任务 情况下 role zed
关键字 synchronized 拥有锁重入的功能,也就是在使用 synchronized 时,当线程等到一个对象的锁后,再次请求此对象时可以再次得到该对象的锁。出现异常时释放锁。
使用 synchronized 声明的方法在某些情况下是有弊端的,比如A线程调用同步的方法执行一个很长时间的任务,那么B线程就必须等待比较长的时间才能执行,这样的情况下可以使用 synchronized 代码块去优化代码执行时间,也就是通常所说的减小锁的粒度。
synchronized代码块案例 【com.herolei._1_2sync.ObjectLock】
synchronized对常量加锁的问题 【com.herolei._1_2sync.StringLock】
注意:锁对象发生改变问题,当使用一个对象进行加锁的操作,要注意对象本身发生改变的时候,那么持有的锁就不同。
每天用心记录一点点。内容也许不重要,但习惯很重要!
标签:一个 对象 内容 改变 习惯 任务 情况下 role zed
原文地址:https://www.cnblogs.com/binarylei/p/8999692.html