Java基础-synchronized关键字的用法

顾名思义是用于同步互斥的做用的。java

这里精简的记一下它的使用方法以及意义:this

1. 当synchronized修饰 this或者非静态方法或者是一个实例的时候,所同步的锁是加在this或者实例对象引用上面的。好比a,b同为Main类的实例化对象,a调用被同步的方法,和b调用被同步的方法,没有造成互斥。可是不一样线程的a对象调用被同步的方法就被互斥了。spa

public synchronized void method(){  
//….  
}  
public void method()  
{  
synchronized (this)  
{  
//…..  
}  
}


2.与1不一样,当synchronized修饰类名.class 或者静态方法的时候. 就算是不一样对象,也会造成互斥.net

Class Main  
{  
public synchronized static void method1()   
{  
//….  
}  
public void method2()  
{  
synchronized(Main.class) //   
}  
}

转自http://blog.csdn.net/cq361106306/article/details/38736551
线程

相关文章
相关标签/搜索