c++ - 调用单例库

标签 c++ singleton shared-libraries static-libraries dll

我有一个单例类,我将把它编译为一个库静态(lib) 或动态(dll)。

是否保证在两种情况下对机器中同一文件的调用始终引用相同且唯一的实例?

编辑: 如果一个进程加载两个不同的库并且这些库中的不同函数想要使用单例类的实例怎么办。现在,他们正在访问同一个实例,我说得对吗?

谢谢,

最佳答案

不,不同的进程不会共享公共(public)库中的单例。不同的进程使用不同的内存空间,因此每个进程都会实例化自己的单例。

您需要使用某种共享内存或进程间通信来在进程之间共享数据。

如果单个进程加载库 A 和 B,并且这两个库都使用库 C 中的单例,那么它们将使用相同的实例。

关于c++ - 调用单例库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2729512/

相关文章:

java - 高级语言(例如Java)和汇编语言之间的关系?

C++:在另一种方法中使用预先声明的运算符[]

C++/C#定义宏计算

java - Mockito:如何验证来自另一个单例类的单例类的方法调用

c - 如何在 xcode 4 的库项目中使用自定义 dylib?

c++ - Boost::ASIO:优化以最小的流量,长连接,小消息,立即传递

java - (Android)如何捕获应用程序主线程终止(如果将其置于后台)

java - 要在一段时间内被阻止的方法或函数,Java,Android

linux - c++ ~ 共享对象 -> 获取主机应用程序偏移量

java - 加载 JNI 库时,映射如何与实际库名称发生