私のc++プログラムでは、スレッドセーフではない独自のライブラリ(.dll)を使用しています。:-(
このライブラリには、特定の科学計算があります。
スレッドと並行してこのライブラリのいくつかのコンピューティングを安全に開始する方法はありますか?(1プロセス、多くのスレッド)
私のプログラムは、スレッドセーフではないライブラリを計算するたびに呼び出す「for」ループのようなものです。
私のc++プログラムでは、スレッドセーフではない独自のライブラリ(.dll)を使用しています。:-(
このライブラリには、特定の科学計算があります。
スレッドと並行してこのライブラリのいくつかのコンピューティングを安全に開始する方法はありますか?(1プロセス、多くのスレッド)
私のプログラムは、スレッドセーフではないライブラリを計算するたびに呼び出す「for」ループのようなものです。
DLL を複数回ロードしたいようです。Load the same dll multiple timesを見てください。
for
非常に単純なアプローチは、ループ内で複数のスレーブ プロセスをフォークすることです。スレーブ プロセスは非スレッド セーフ モジュールをロードして計算を行い、最終的に単純なリターン コード (結果が 4 バイトに収まる場合)、IPC、またはファイルを介して親プロセスに結果を返します。
もちろん、このアプローチは、並列計算が他の計算との相互作用を必要としないことを前提としています。