单例模式定义: 一个类只有一个实例对象。c++一般的方法是将构造函数,拷贝构造函数,以及赋值操作符函数生命为private级别,从而阻止用户实例化一个类。(一般需要类提供一个Public&static方法),通过该方法获得这个类唯一的一个实例对象。
单线程环境(两种体现单线程模式) 1.饿汉式:类产生的时候就创建好实例对象,这是一种空间换时间的方式
1.饿汉式的对象在类产生的时候就创建了,一直到程序结束才释放。对象的生存周期和程序一样长。该实例对象需要存储在内存的全局数据区,使用static修饰。 2.(饿汉式的单例模式很简单,线程安全,不需要考虑线程同步)
2.懒汉式:在需要的时候,才创建对象,这是一种时间换空间的方式
1.懒汉式单例模式:是在第一次调用getInstance()时候,才创建实例对象,直接把对象定义为static,然后放在getInstace()中.第一次进入该函数,就创建实例对象,然后结束时,释放该对象。 2.对于懒汉式,当调用getInstance函数时,如果对象还没有产生,局需要产生对象 然后返回对象指针,如果对象已经存在,就直接返回对象指针。在单线程情况下,当然没有问题,但是在多进程情况下,如果一个函数中不同状态有不通操作,局需要考虑线程同步的问题
"由于线程的使用和操作系统有关,因此这例的lock()和unlock()函数函数仅作说明示意,并未实现,都是常见的线程同步办法 " 参考博客:https://blog.csdn.net/cjbct/article/details/79266057?utm_medium=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-7.channel_param&depth_1-utm_source=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-7.channel_param 后续会补充进程同步的一些方法 还有一些其他的设计模式 敬请期待~~~