我想在Linux上写一个“嵌入式控制系统”
为了以后方便更新,我觉得多进程比多线程好
所以,这个系统可能分成3个程序
“处理”,从别人那里读取一些输入数据并进行一些计算,然后将结果保存到共享内存
“显示”,从共享内存中读取即时数据并选择一些数据显示在UI上(Qt编写)
“数据库”,从共享内存中读取即时数据并在一段时间内保存,数据一开始会保存在二进制文件中,以后可能会用sqlite代替
还有,也许我会添加一个网络服务器来读取即时数据并通过浏览器显示
问题是:
多进程真的比多线程好吗?
如果使用多进程,那么使用共享内存,有什么缺点吗。
最佳答案
is multi-process really better multi-thread?
取决于你想做什么。多处理强制执行系统组件之间的严格分离,允许各个部分使用不同的凭据运行。它确实需要比多线程更复杂的通信机制,并会产生一些开销。
If use multi-process, how about use shared memory, is there any disadvantage.
与使用套接字的明显替代方案相比,主要缺点是它将整个系统限制在单个主机上运行。没有分布式计算。
关于linux - 如何使用共享内存来共享程序中的数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8726503/