最近试着用多线程来改善以前写的程序的性能,运行时遇到了不少问题,查来查去还是单例对象的问题。单例对象在内存中只存在一份,类似于全局对象,这样的数据遇到多线程访问就杯具了。。。
原来学设计模式时觉得单例是最简单的模式,容易理解和实现。现在看来,单例实现要考虑的事情很多:对象生存期、初始化与释放顺序、线程安全性。。。。 如此这般,要想全,再实现好一个单例模式,还是需要深厚的技术功底。
最近试着用多线程来改善以前写的程序的性能,运行时遇到了不少问题,查来查去还是单例对象的问题。单例对象在内存中只存在一份,类似于全局对象,这样的数据遇到多线程访问就杯具了。。。
原来学设计模式时觉得单例是最简单的模式,容易理解和实现。现在看来,单例实现要考虑的事情很多:对象生存期、初始化与释放顺序、线程安全性。。。。 如此这般,要想全,再实现好一个单例模式,还是需要深厚的技术功底。