- 锁对象
一种写法:
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 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){ } } }
|