我有一个单例类,我将把它编译为一个库静态(lib) 或动态(dll)。
是否保证在两种情况下对机器中同一文件的调用始终引用相同且唯一的实例?
编辑: 如果一个进程加载两个不同的库并且这些库中的不同函数想要使用单例类的实例怎么办。现在,他们正在访问同一个实例,我说得对吗?
谢谢,
最佳答案
不,不同的进程不会共享公共(public)库中的单例。不同的进程使用不同的内存空间,因此每个进程都会实例化自己的单例。
您需要使用某种共享内存或进程间通信来在进程之间共享数据。
如果单个进程加载库 A 和 B,并且这两个库都使用库 C 中的单例,那么它们将使用相同的实例。
关于c++ - 调用单例库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2729512/