Skip to content

0916viper只是类似单例模式

ziyouzy edited this page Sep 16, 2020 · 1 revision

文章:

https://zhuanlan.zhihu.com/p/138691244

go语言单例模式的真正标准套路:

https://zhuanlan.zhihu.com/p/97681904

其所需解决的问题依然是java单例模式所存在的那两个问题:

一个是类似变量的加减,一个是内部函数的重复实例化问题。

之所以存在问题核心同样在于单例对象内部所存在的可能被不同线程随时操作的公有成员

之后引出sync包的相关使用但是对于golang的设计哲学,有这样一句话:

不要以共享内存的方式来通信,作为替代,我们应该以通信的手段来共享内存

说的肤浅一些,则是并发的数据处理,以及线程安全问题,能用管道解决就不要用锁

另外可以明确的是单例模式的知识点其实并发技术的一部分,因为他和并发一样,必然会包含多线程与资源共享问题

而java解决线程安全是基于锁技术,这本身就有些过时了

Clone this wiki locally