1. 首页
  2. 编程语言
  3. Java
  4. 9种Java单例模式详解(推荐)

9种Java单例模式详解(推荐)

上传者: 2022-06-08 13:50:45上传 PDF文件 95.64 KB 热度 9次

针对懒汉式的线程不安全,自然会想到给 getSingleton() 进行 synchronized 加锁来保证线程同步。在进行类加载时完成实例化对象的过程就是饿汉式的形式。与第六种方法不同的是,此方法给singleton 的声明上加了关键字 volatile ,进而解决了低概率的线程不安全问题。ThreadLocal 会为每一个线程提供一个独立的变量副本,从而隔离了多个线程对数据的访问冲突。对于多线程资源共享的问题,同步机制采用了“以时间换空间”的方式,而ThreadLocal 采用了“以空间换时间”的方式。前者仅提供一份变量,让不同的线程排队访问,而后者为每一个线程都提供了一份变量,因此可以同时访问而互不影响。

用户评论