通信软件和其他类型的软件一样,常常需要保证有些类只有一个实例。比如,只使用ACE_Reactor的一个实例,为整个系统提供事件多路分离机制。GoF在Design Pattrm一书中介绍了Singleton模式,用以“Ensure a class only has one instance,and provide a global point of access to it”,并提供了相应的实现。但是,在ACE的应用领域里,GoF的Singleton实现存在着严重的缺陷,比如在多线程环境下的race codition,以及全局静态对象的初始化次序问题,等等,本文将分别介绍这两种模式以及ACE的Singleton实现。