gpt4 book ai didi

c++ - 如何在多线程环境中使用旧的单线程 C++ 库

转载 作者:可可西里 更新时间:2023-11-01 13:51:12 30 4
gpt4 key购买 nike

我有一个旧的 C++ 库,它是为在单线程环境中使用而设计的。

库暴露了初始化的接口(interface),改变了库内部的数据结构,以及使用,只读取数据并进行计算。

我的目标是在 Windows 多线程应用程序中使用这个库,不同线程调用使用不同数据初始化的 dll 实例。

假设重写 dll 以允许多线程将被禁止,是否有某种方法可以让 DLL 的多个实例存在于同一进程中,具有单独的内存空间,或者通过其他方式获得类似的结果?

最佳答案

如果 DLL 包含静态资源,那么这些资源将在创建的所有实例之间共享。

一种可能的方法是创建单个实例并使用某种锁定机制限制对其的访问。这可能会降低性能,具体取决于使用情况,但如果不修改 DLL 的内部结构,则可能难以使用多个实例。

关于c++ - 如何在多线程环境中使用旧的单线程 C++ 库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5027942/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com