王桑的一天 2022-09-06 08:55 采纳率: 75%
浏览 36

怎么选择进程间通信方式?

怎么选择进程间通信方式?

关于进程间通信,我这种场景选用哪种方式好?

有一个界面进程A,它能够调用后台程序B,B能够被调用多次,会有多个B进程。像chrome.exe一样,好多个。

要求:

B要给A发消息,量不多,比如错误日志,显示在界面上。这里还好。

A需要能从每个B进程读取一些数据,显示在界面上。不是简单的状态之类。是一些不定数量的数据,比如数组。随着运行时间推移,这些数据可能变多。这里麻烦。

是不是用socket通信比较好些?但每个B都要监听一个端口?那如果运行了100个B……

或者干脆用一个sqlite 本地数据库保存?sqlite好像是锁表的,对性能又有影响

  • 写回答

2条回答 默认 最新

  • 於黾 2022-09-06 09:04
    关注

    你可以A进程进行侦听,B进程主动将状态发送给A呀,这样就不存在需要占用100个端口的问题了
    每个B进程总是要知道自己的ID是什么吧,要不然100个进程完成同一个任务也说不过去呀,通信的时候顺便告诉A自己的ID不就得了
    错误日志完全可以统一写个日志,然后A定时去读,不用通信,要不然A有任何问题还影响B正常记录日志了那也不合理呀
    如果你觉得一个侦听要能同时跟100个进程通信实现起来有点复杂,其实也可以B进程把数据写进redis,A进程定时去消费,这样会简单很多

    评论 编辑记录

报告相同问题?

问题事件

  • 请提交代码 9月6日
  • 创建了问题 9月6日