synchronized(同步锁)

  • 实现单例模式时synchronized的必要性
    当两个并发线程访问同一个对象object中的这个synchronized(this)同步代码块时,一个时间内只能有一个线程得到执行。另一个线程必须等待当前线程执行完这个代码块以后才能执行该代码块。
public class ActivityManager {
    //单例模式
    private static ActivityManager instance;
    private ActivityManager() {}

    public static ActivityManager getActivityInstance() {
        if (instance == null) {
            synchronized (ActivityManager.class) {
                if (instance == null) {
                    instance = new ActivityManager();
                }
            }
        }
        return instance;
    } 
}

参考文献:(同步锁需要调整为代码块上)
https://www.cnblogs.com/TS-qrt/articles/javasynchronized.html

你可能感兴趣的:(synchronized(同步锁))