我正在开发一个在嵌入式 Linux 平台上运行的应用程序(C++ 与 Qt 相结合的图形部分)。我需要知道如何将应用程序划分为不同的“核心”,每个核心负责处理应用程序的不同部分,以提高应用程序本身的稳定性、效率和安全性。
我的疑问是:将功能划分为线程还是分叉不同的进程更方便?
让我提供一个应用程序的功能视图:每个用户界面都有不同的用户界面,允许用户或多或少地做相同的事情(不要介意数据一致性,我已经解决了这个问题)。这些接口中的每一个都必须作为独立的(就像同一系统的不同终端一样)。我希望他们所有人都从同一个“核心”发送和接收消息,该“核心”将负责更新应用程序数据或做其他适当的事情。
实现内部“核心”和用户界面之间划分的最佳方式是什么?
当然我错过了一些知识,但到目前为止我想出了两个选择:1 - 从父亲“核心”派生一个孩子,让孩子执行一个特定的 UI 程序(我没有这样做的实际经验,所以如何,在在这种情况下,我可以让父亲和孩子进行交流吗(记住孩子是一个新进程)?) 2 - 为每个核心和 UI 创建不同的线程。
我需要这个划分,因为要求应用程序尽可能稳定,并且能够在崩溃的情况下重新启动 UI。还要记住,整个应用程序不会有无限的内存和资源可用。
提前感谢您的帮助,问候。