我有一个旧的 C++ 库,它是为在单线程环境中使用而设计的。
该库公开了用于初始化的接口,这改变了库的内部数据结构,以及仅读取数据和进行计算的用法。
我的目标是在 Windows 多线程应用程序中使用这个库,不同的线程调用使用不同数据初始化的 dll 实例。
假设重写 dll 以允许多线程是禁止的,是否有某种方法可以让 DLL 的多个实例存在于同一进程中,具有单独的内存空间,或者通过其他方式获得类似的结果?
如果 DLL 包含静态资源,那么这些资源将在创建的所有实例之间共享。
一种可能的方法是创建单个实例并使用某种锁定机制限制对其的访问。根据使用情况,这可能会降低性能,但如果不修改 DLL 的内部结构,可能很难与多个实例一起工作。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)