在非线程安全的环境中进行多线程处理

时间:2013-01-09 16:06:53

标签: c++ parallel-processing thread-safety

在我的c ++程序中,我使用了一个非线程安全的专有库(.dll)。 : - (

在这个图书馆里有一个特定的科学计算。

有没有办法安全地启动与线程并行的这个库的几个计算? (1个过程,很多线程)

我的程序“就像”一个“for”循环,每次调用我的非线程安全库时都会调用

2 个答案:

答案 0 :(得分:2)

听起来好像要多次加载DLL。看看Load the same dll multiple times

答案 1 :(得分:1)

一种非常简单的方法是在for循环中分支多个从属进程。从属进程加载非线程安全模块并进行计算,最后通过简单的返回代码(如果结果适合4个字节),IPC或文件将结果返回给父进程。

当然,这种方法假设并行计算不需要与其他计算机进行任何交互。