synchronized的使用方法共四种:
1.在方法声明时使用
1.在方法声明时使用
位置在public/protect/private之后,返回类型声明void之前。线程获得的是成员锁,即一次只能有一个线程进入该方法,其他线程要想在此时调用该方法,只能排队等候,当前线程(就是在synchronized方法内部的线程)执行完该方法后,别的线程才能进入。
public synchronized void Ot(){
//
}2.在对某一代码块时使用,线程获得的是成员锁
public void Ot(int h){
synchronized(h){
//
}
}3.对某一对象使用,线程获得的是对象锁
Runnable oTRunnable=new Runnable() {
@Override
public void run() {
synchronized (this) {
//
}
}
};4.对某一类使用对象锁,比如单例的加锁:
public static Singleton getInstance() {
synchronized (Singleton.class) {
if (instance == null) {
instance = new Singleton();
}
}
return instance;
}
本文详细介绍了Java中synchronized关键字的四种使用方式,包括在方法声明时使用、对代码块使用、对特定对象使用以及对类进行加锁实现单例模式等,帮助读者深入理解Java并发控制机制。

3725

被折叠的 条评论
为什么被折叠?



