java一个类有两个synchronized方法,是不是同一时间只能有一个处于运行,这个两个方法的锁是一样的吗

2024-11-08 00:06:19
推荐回答(4个)
回答(1):

方法的锁是可以设定的,如
methodA(){
synchronized(Object obj){
//方法体
}
}
表示对对象obj进行锁定,锁定本类用this,这样可以设定你想上锁的对象,而不一定两个方法就是锁定的同一个对象,如果不是对同一对象的锁,就可以同一时间同时运行。

回答(2):

不是,加synchronized代表多个线程访问这个方法是,只有获得锁的线程能够使用这个方法

回答(3):

sync不能防死锁,只能保证线程安全(同时间只有一个线程被允许访问加了sync的方法)

回答(4):

加入synchronized其实就是为了避免多线程引起的死锁。