朋友面试遇到的一个题,自己也没好的解决方法

2019-02-20 17:18:33 +08:00
 thechosenone

多进程加线程时进程间通信最好的设计是怎样

4785 次点击
所在节点    Python
23 条回复
dychenyi
2019-02-20 17:31:25 +08:00
貌似可以看下 Chrome 多进程架构
xxxy
2019-02-20 17:35:23 +08:00
我可以背出来:信号、管道、消息队列、共享内存
thechosenone
2019-02-20 17:37:48 +08:00
@xxxy 大哥,这是网易面试的问题,你这只说了方式,谁都能背书啊
thechosenone
2019-02-20 17:38:02 +08:00
@dychenyi 这个也太复杂了。。
lurenw
2019-02-20 17:41:58 +08:00
看通讯涉及到的数据,如果是简单的命令,可以采用信号,消息队列这种。如果有需要操作大量数据的,可以考虑共享内存。如果是在单机上,甚至可以采用文件映射的方式。

仅供参考
thechosenone
2019-02-20 17:43:05 +08:00
@lurenw 我也觉得问题太笼统了,肯定没有完美的模型来处理广泛的问题,谢谢你的答复
aijam
2019-02-20 17:44:56 +08:00
可以反问面试官,全中国最好的 IT 公司是哪家。
liuxu
2019-02-20 17:46:19 +08:00
进程信号注册,pcntl_signal 相关
yidinghe
2019-02-20 17:47:33 +08:00
难道不是 socket 吗?
rayingecho
2019-02-20 17:47:46 +08:00
"最好"这个词说不定是在给你下套, 面试官应该不至于连"没有银弹"都不知道
wbing
2019-02-20 17:48:24 +08:00
套接字
cxl008
2019-02-20 17:48:54 +08:00
难道不是 socket 吗?
CodeCore
2019-02-20 17:58:16 +08:00
看场景吧....Chrome 这种用的是管道, 牺牲内存换速度.....
ymj123
2019-02-20 18:10:05 +08:00
是想让你把各种方式列举出来分析优劣吗?
jiangnanyanyu
2019-02-20 18:55:41 +08:00
你问他最好具体是指哪方面呢?有没有一个衡量的标准呢,如果没有,那么怎么得出来的最好呢?
911speedstar
2019-02-20 22:15:51 +08:00
问的是进程间通信,socket。。。没有别的了
luozic
2019-02-20 22:19:30 +08:00
最好的设计? 已有技术实现里面?多进程之间 要么内存换性能先复制再修改,要么直接上数据库的事务同步方式。其他的有多少用的?
tempdban
2019-02-21 07:05:36 +08:00
放在共享内存中的无锁队列
taianrc
2019-02-21 08:32:54 +08:00
进程通信不用强调线程吧?
socketpair or Local socket ?
openbinder ?
hp66722667
2019-02-21 10:25:13 +08:00
感觉面试官随便找了一个不可能回答出完美答案的问题,随便意思意思,估计他自己都不知道

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/536958

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX