多くのソース コードとデータを共有する 3 つのレガシー アプリケーションがあります。これらの各アプリケーションの複数のインスタンスは、ユーザーによっていつでも実行できます。たとえば、一度に多数の混合アプリケーションを実行できます。これらのアプリケーションは現在、共通のカーソル位置などを維持できるように、共有メモリとメッセージング技術を介して通信します。アプリケーションは主に C++ で記述され、Qt を使用し、合計で約 500 万行のコードを実行します。既存のコードの一部のみがスレッドセーフです。
これら 3 つの実行可能ファイルを 1 つの実行可能ファイルに統合し、マルチスレッド機能を使用して、3 つの機能ブランチのそれぞれの複数のインスタンスを同時に実行できるようにしたいと考えています。共有ポインターなど、Boost が提供する機能のいくつかを調査し、OpenMP を使用して複数のスレッドの全体的な実行を調整することを提案されました。
進め方に関するコメント、特にこの種のリファクタリングの問題に取り組むための最良の方法に関する参考文献を歓迎します。