4.2 synchronized

synchronized 实际是用对象锁保证了临界区内代码的原子性,临界区内的代码对外是不可分割的,不会被线程切
换所打断。

4.4 变量的线程安全分析

成员变量和静态变量是否线程安全?

  1. 如果它们没有共享,则线程安全 如果它们被共享了,根据它们的状态是否能够改变,又分两种情况
    如果只有读操作,则线程安全
    如果有读写操作,则这段代码是临界区,需要考虑线程安全
  2. 局部变量是否线程安全?
    局部变量是线程安全的
    但局部变量引用的对象则未必
    如果该对象没有逃离方法的作用访问,它是线程安全的 如果该对象逃离方法的作用范围,需要考虑线程安全

4.6 Monitor (管程或监视器锁)概念

JAVA对象头
JAVA 多线程学习笔记之第四章内容part1
JAVA 多线程学习笔记之第四章内容part1
这种情况指向Monitor

相关文章: