cri*_*ell 4 c++ singleton static global
我们为产品使用的库之一使用单例来访问它.我很确定它是作为静态实例实现的(它不是开源的).这适用于单个文档应用程序,但我们的应用程序可能加载了多个文档.我假设访问该实例是这样写的:
Instance* getInstance() {
static Instance* inst = new Instance();
return inst;
}
Run Code Online (Sandbox Code Playgroud)
在这种情况下,有没有办法可以强大地创建多个实例?我唯一能想到的就是不仅要处理并使用某种类型的IPC来将它们联系在一起.我想不出任何不那么黑的东西.
我已经要求供应商实现某种类型的会话令牌,因此我可以拥有多个并发实例,但它们很大而且我们很小.
科里
编辑:
而不是尝试一些狡猾的恶作剧来获得我想要的东西,我将用我自己的类包装整个事物并为每个getter添加一个会话密钥.在内部,我将跟踪已分配的内容添加我自己的发布方法以返回资源.由于很多原因,这是次优的,但我想不出更好的主意.
感谢大家的好评.
即使你能够解决这个特殊问题,同时让一切都发生在进程中,我也会担心这个单例问题只是冰山一角.该库显然不是为您的场景设计的.
将DLL的每个负载隔离到它自己的过程听起来对我来说是正确和非hacky,虽然当然它对你来说可能是昂贵的.
| 归档时间: |
|
| 查看次数: |
1121 次 |
| 最近记录: |