一、静态同步synchronized方法与synchronized(class)代码块
1、静态同步synchronized方法
关键字synchronized可以应用在static静态方法上,是对当前的java文件对应的Class类进行持锁。
public class HasSelfPrivateNum {
//对静态方法加锁
public synchronized static void addI(String userName,NoSysnTest noSysnTest){
System.out.println("sleep end threadName="+Thread.currentThread().getName()+" time="+System.currentTimeMillis());
}
}
synchronized关键字加到static静态方法上是给Class类上锁。
由于一个class不论被实例化多少次,其中的静态方法和静态变量在内存中都只有一份。所以,一旦一个静态的方法被申明为synchronized。此类所有的实例化对象在调用此方法,共用同一把锁,我们称之为类锁。
public class HasSelfPrivateNum {
//静态方法同步
public synchronized static void addI(String userName,NoSysnTest noSysnTest){
System.out.println("s