私は現在、QT (4) を使用して、非プログラマーによって C で記述されたスレッドセーフではないライブラリを並列化しているため、多くのグローバル変数があります。スレッドは対話したりデータを共有したりする必要はありません。それぞれがライブラリの一連のメソッドを呼び出すだけで、最後にライブラリはさらに使用される出力を提供します。
ただし、問題は、グローバル変数がデフォルトでスレッド間で共有されているため、ライブラリがさまざまな場所でクラッシュすることです。これを修正するには、次の 2 つの方法があります。
グローバル変数を使用しないようにライブラリ全体をリファクタリングするか (痛い)、グローバル変数を非共有にする方法を見つけるか、3 つ目の魔法の方法を見つけます。
後者は QT または標準 (C++01) C++ のオプションですか?