我有三个共享大量源代码和数据的遗留应用程序。用户可以随时执行这些应用程序中的每一个的多个实例,例如,一次可以激活十几个混合应用程序执行。这些应用程序目前通过共享内存和消息传递技术进行通信,以便它们可以保持公共光标定位等。这些应用程序主要用 C++ 编写,使用 Qt,总共运行约 500 万行代码。只有一些现有代码是线程安全的。
我想将这三个可执行文件合并到一个可执行文件中,并使用多线程功能来允许三个功能分支中的每一个的多个实例同时执行。有人建议我研究 Boost 提供的一些特性,例如共享指针,并使用 OpenMP 来协调多个线程的整体执行。
任何有关如何进行的评论都将受到赞赏,特别是有关解决此类重构问题的最佳方法的参考。