假设有以下的多例实现:
public class Multiton
{
private static final Multiton[] instances = new Multiton[...];
private Multiton(...)
{
//...
}
public static Multiton getInstance(int which)
{
if(instances[which] == null)
{
instances[which] = new Multiton(...);
}
return instances[which];
}
}
如何在不使用昂贵的getInstance()方法同步和双重检查锁定的争议的情况下保持线程安全和惰性?单例的一种有效方式在这里提到,但似乎不能扩展到多例。
getInstance
方法同步实际上会产生重大影响? - Jon Skeet