各位大哥想问一下
我写了个单例Singleton类如果是在2核CPU下运行
1.是不就不再是单例了,而是2个实例。
2.还是单例,只不过2个CPU在轮番使用这一个实例,同一时刻只能有一个CPU使用这个实例。
基础不好,有哪位老哥给我讲讲,如果我先听不懂可以先记下结论
你为啥要把cpu这种底层的东西和单例这种高层的抽象概念混在一起?这两样东西一个在泥里打滚,一个在天上飞,你是怎么觉得他们会有关系的呢?
2
单例一般会用线程安全的写法,所以你按第二种理解
上边的回答都是一知半解的,其实你的提问其实是有问题的,首先单例是和多线程有关,并不是直接和你的CPU核心是几个有关系。单例的写法通常有懒汉试和饿汉式,饿汉式不存在线程安全问题,推荐饿汉式写法,懒汉式是存在线程安全问题。
首先无论你是否是单核CPU,只要你是多线程,那么采用懒汉式写法都是存在问题的,要想解决线程安全问题,你需要上锁。