王桑的一天 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日

悬赏问题

  • ¥15 基于卷积神经网络的声纹识别
  • ¥15 Python中的request,如何使用ssr节点,通过代理requests网页。本人在泰国,需要用大陆ip才能玩网页游戏,合法合规。
  • ¥100 为什么这个恒流源电路不能恒流?
  • ¥15 有偿求跨组件数据流路径图
  • ¥15 写一个方法checkPerson,入参实体类Person,出参布尔值
  • ¥15 我想咨询一下路面纹理三维点云数据处理的一些问题,上传的坐标文件里是怎么对无序点进行编号的,以及xy坐标在处理的时候是进行整体模型分片处理的吗
  • ¥15 CSAPPattacklab
  • ¥15 一直显示正在等待HID—ISP
  • ¥15 Python turtle 画图
  • ¥15 stm32开发clion时遇到的编译问题