JAVA多线程
关于Sychronized的几种用法
- 1
sychronized(this){
xxxx
}
这种情况是针对对象而言的,几个线程若同时对一个对象实例,则只有一个线程可以执行该代码段,但如果针对的是不同的对象实例,则不受影响
- 2
public sychronized method()
{xxx
}
这种情况是对对象方法上锁,若几个线程针对的对象实例是同一个,则只有一个线程能够访问该方法,且无法访问其他sychronized方法,但非sychronized方法则不受限制
- 3
public static sychronized method(){
xxx
}
这是对类方法上锁,只要是针对这一类的对象的线程,不管是否为统一对象实例,都只有一个线程能够访问该方法。