C++ 单例 Meyers' Singleton(迈耶斯单例)
Meyers' Singleton(迈耶斯单例)是 C++ 中实现单例模式的一种简洁高效的方法,由 C++ 专家 Scott Meyers 提出。其核心原理是利用局部静态变量的初始化特性保证单例的唯一性和线程安全性(C++11 及以后标准)。1、核心原理
[*]局部静态变量的初始化特性
在 C++ 中,函数内的局部静态变量会在第一次调用该函数时初始化,且仅初始化一次。Meyers' Singleton 正是利用这一特性,将单例实例定义为静态成员函数中的局部静态变量,确保实例只被创建一次。
[*]线程安全性(C++11 及以后)
C++11 标准规定:局部静态变量的初始化是线程安全的,即多个线程同时首次调用函数时,初始化操作会被正确序列化(只有一个线程执行初始化,其他线程等待),无需额外的同步机制。
2、实现代码
#include class Singleton {private: // 1. 私有构造函数:禁止类外创建对象 Singleton() { std::cout
页:
[1]