
多线程
文章平均质量分 60
清曲
这个作者很懒,什么都没留下…
展开
-
synchronized关键字作用 以及synchronized 方法和synchronized 块 的区别 最强解释
synchronized 关键字:它包括两种用法:synchronized 方法和 synchronized 块。 当它用来修饰一个方法或者一个代码块的时候,能够保证在同一时刻最多只有一个线程执行该段代码。synchronized 方法修饰普通方法 锁住当前实例对象 ,在释放锁之前调用本对象的所有synchronized 修饰的普通方法 , 以及其它 全局 锁这个对象 的 synchronized 块 进入阻塞状态修饰静态方法 锁住当前class对象 ,在释放锁之前调用class对象的所有s原创 2021-02-10 04:36:57 · 543 阅读 · 3 评论 -
volatile为什么不能保证 i++的线程安全 单例模式的双重检查(DCL)为什么要加volatile
volatile关键字 保证了可见性和 有序性,但不保证原子性 想要保证原子性要 加锁(锁 也失效了有序性) 。原子性:将整个操作视作一个整体是原子性的核心特征,即一个操作或者多个操作,要么全部执行并且执行的过程不会被任何因素打断,要么就都不执行。原子性就像数据库里面的事务一样,他们是一个团队,同生共死。原子操作(指令步骤层面):是指不会被线程调度机制打断的操作。这种操作一旦开始,就一直运行到结束,中间不会有任何 context switch。Java 原子操作:参考https:...原创 2021-02-10 01:40:24 · 818 阅读 · 2 评论