プログラムで 2 つのスレッドを実行しています。これらは boost::thread を使用して作成されます。
2 つのスレッドは、メモリに関して何も共有しません。それらの間でデータ構造やオブジェクトが共有されることはありません。
ここで、2 番目のスレッドはプライベート メンバーとして多くの二重固有行列を持つクラスを使用します。Eigen ディレクティブ EIGEN_MAKE_ALIGNED_OPERATOR_NEW などを使用して行列が整列されていることを確認します
最初のスレッドが実行されているとき、2 番目のクラスの行列の要素は上書きされます。小数のはずの要素がいきなり整数になってしまうので調べてみました。最初のスレッドが実行されていない場合、2 番目のスレッドには問題がなく、その Eigen メンバーは正しい値を持っています。
繰り返しますが、1) 2 つのスレッドはデータ構造を共有していません。2) プログラムの実行中に、セグメンテーション違反メッセージまたは同様のメッセージまたはエラー メッセージが表示されない。3) 2 番目のスレッドのメモリを保護する方法、またはメモリがどのように侵害されたかを追跡する方法について何か提案はありますか?
前もって感謝します。コードを投稿しなかったことは本当に申し訳ありませんが、それは巨大です。コードから特定のものを投稿してほしい場合はお知らせください。