Java 多线程 Synchronized 关键字
自己关于Synchronized关键字的理解
Synchronized关键字用户同步,其实是用对象锁或则类锁实现的。
Synchronized用于对象实例共有3种情况:
1. Synchronized整个方法;2 用Synchronized(this); 3用Synchronized(某Object)
用于类也有2种情况
1. Synchronized整个静态方法; 2用Synchronized(this.class);
问题1:
class XX {
synchronized public void A (){
Sleep(20000);
}
synchronzied public void B(){
Sleep(30000);
}}
Thread A 调用 XX对象的方法A,同时Thread B调用XX对象的方法B, Thread B会堵塞吗? 答案:会。因为用的对象锁。都是XX对象。
问题2:
class XX{
synchronized public static void sa()
{
Sleep(20000);
}
synchronzied public static void sb(){
Sleep(30000);
}
public static void sc()
{
Synchronized(XX.class)
{
}
}
}
Thread A 调用 XX类方法sa,同时Thread B调用XX类方法sb或sc, Thread B会堵塞吗? 答案:会。因为用的类锁。都是XX类的。

浙公网安备 33010602011771号