Java synchronized 关键字用法

2016/01/01 Java

synchronized 在 Java 中专门用于处理同步问题。

作用域

synchronized 关键字实际是绑定到对象上的锁,未指定时默认就是本对象,有如下几种绑定:

// 绑定到本对象
synchronized aMethod(){}
// 绑定到本类对象
synchronized static aStaticMethod{}
// 绑定到对象 obj 上, obj 可以为对象或者类对象
synchronized(obj) {
}

多个线程同时访问 synchronized 的代码块时,必须获取对象上的锁,不能获取则等待,由此可以有如下推论:

  1. 同一个绑定对象关联的 synchronized 代码块在多线程下只能同步运行
  2. 不同绑定对象关联的 synchronized 代码块在多线程下不互相干扰

Search

    Table of Contents