原文地址:http://blog.csdn.net/cq361106306/article/details/38736551 synchronized--同步 顧名思義是用於同步互斥的作用的。 這裡精簡的記一下它的使用方法以及意義: 當synchronized修飾this或者非靜態方法或者是一個實例... ...
原文地址:http://blog.csdn.net/cq361106306/article/details/38736551
synchronized--同步
顧名思義是用於同步互斥的作用的。
這裡精簡的記一下它的使用方法以及意義:
- 當synchronized修飾 this或者非靜態方法或者是一個實例的時候,所同步的鎖是加在this或者實例對象引用上面的。比如a,b同為Main類的實例化對象,a調用被同步的方法,和b調用被同步的方法,沒有形成互斥。但是不同線程的a對象調用被同步的方法就被互斥了。
public synchronized void AMethod() { // ... }
public void BMethod() { synchronized (this) { // ... } } |
- 與1不同,當synchronized修飾類名.class 或者靜態方法的時候. 就算是不同對象,也會形成互斥
public synchronized static void method1() { // ... }
public void method2() { synchronized (Test.class) { // ... } } |