想问一下多核CPU下单例模式问题

各位大哥想问一下

我写了个单例Singleton类如果是在2核CPU下运行

1.是不就不再是单例了,而是2个实例。

2.还是单例,只不过2个CPU在轮番使用这一个实例,同一时刻只能有一个CPU使用这个实例。

基础不好,有哪位老哥给我讲讲,如果我先听不懂可以先记下结论

你为啥要把cpu这种底层的东西和单例这种高层的抽象概念混在一起?这两样东西一个在泥里打滚,一个在天上飞,你是怎么觉得他们会有关系的呢?

2

单例一般会用线程安全的写法,所以你按第二种理解

上边的回答都是一知半解的,其实你的提问其实是有问题的,首先单例是和多线程有关,并不是直接和你的CPU核心是几个有关系。单例的写法通常有懒汉试和饿汉式,饿汉式不存在线程安全问题,推荐饿汉式写法,懒汉式是存在线程安全问题。

首先无论你是否是单核CPU,只要你是多线程,那么采用懒汉式写法都是存在问题的,要想解决线程安全问题,你需要上锁。

建议你看看这篇博客https://www.jianshu.com/p/7d427a696437