Java并发-syncronized

  1. 锁对象

一种写法:

this是指本对象,锁的是该对象,是一个实例。

1
2
3
4
5
6
7
8
class Room{
private int counter = 0;
public void increment(){
synchronized (this){
counter++;
}
}
}

另一种写法,是把synchronized加在方法上:

1
2
3
4
5
6
class Room{
private int counter = 0;
public synchronized void increment(){
counter++;
}
}
  1. 锁类

一种写法,是锁类

1
2
3
4
5
class Test{
public synchronized static void test(){
//
}
}

另一种写法,是加在静态方法上

1
2
3
4
5
6
7
class Test{
public static void test(){
synchronized(Test.class){
//
}
}
}