普通单例模式我明白,但是现在希望实现每个线程都有一个唯一的单例,应该怎么做?
我知道用Threadlocal变量可以为每个线程提供一个独立的实例,但是不能保证这个实例是唯一的、不可变得。
如果用volatile修饰的话,按volatile的意义理解就是每个线程都有一份实例的副本,但是这些副本是不是同一个对象呢?
普通单例模式我明白,但是现在希望实现每个线程都有一个唯一的单例,应该怎么做?
我知道用Threadlocal变量可以为每个线程提供一个独立的实例,但是不能保证这个实例是唯一的、不可变得。
如果用volatile修饰的话,按volatile的意义理解就是每个线程都有一份实例的副本,但是这些副本是不是同一个对象呢?
15 回答8.4k 阅读
8 回答6.2k 阅读
1 回答4k 阅读✓ 已解决
3 回答6k 阅读
3 回答2.2k 阅读✓ 已解决
2 回答3.1k 阅读
2 回答3.8k 阅读
结果, 每个thread都对应唯一的不可变的 ThreadLocalSingleton实例: