spring指令重排和多线程,原来在编写程序的时候要考虑这么多东西,要想清楚每一个代码,每一个线程在哪执行,还有要懂得jvm 的一些优化的。任重而道远啊。
单例模式,只允许一个实例的存在,构造函数是私有的,对外提供获取实例的方法。getInstance() 单例模式需要注意多线程情况下的程序正确运行,加双重校验锁,但是容易出错,一般用静态内部类,在加载的时候就创建,
普通工厂模式, 对于参数的不同,返回不同的实例类。
工厂模式实现了使用和创建的分离。
但是工厂模式也产生了 产品过多