多进程加线程时进程间通信最好的设计是怎样
1
dychenyi 2019-02-20 17:31:25 +08:00
貌似可以看下 Chrome 多进程架构
|
2
xxxy 2019-02-20 17:35:23 +08:00 1
我可以背出来:信号、管道、消息队列、共享内存
|
3
thechosenone OP @xxxy 大哥,这是网易面试的问题,你这只说了方式,谁都能背书啊
|
4
thechosenone OP @dychenyi 这个也太复杂了。。
|
5
lurenw 2019-02-20 17:41:58 +08:00
看通讯涉及到的数据,如果是简单的命令,可以采用信号,消息队列这种。如果有需要操作大量数据的,可以考虑共享内存。如果是在单机上,甚至可以采用文件映射的方式。
仅供参考 |
6
thechosenone OP @lurenw 我也觉得问题太笼统了,肯定没有完美的模型来处理广泛的问题,谢谢你的答复
|
7
aijam 2019-02-20 17:44:56 +08:00
可以反问面试官,全中国最好的 IT 公司是哪家。
|
8
liuxu 2019-02-20 17:46:19 +08:00
进程信号注册,pcntl_signal 相关
|
9
yidinghe 2019-02-20 17:47:33 +08:00 via Android
难道不是 socket 吗?
|
10
rayingecho 2019-02-20 17:47:46 +08:00
"最好"这个词说不定是在给你下套, 面试官应该不至于连"没有银弹"都不知道
|
11
wbing 2019-02-20 17:48:24 +08:00
套接字
|
12
cxl008 2019-02-20 17:48:54 +08:00
难道不是 socket 吗?
|
13
CodeCore 2019-02-20 17:58:16 +08:00
看场景吧....Chrome 这种用的是管道, 牺牲内存换速度.....
|
14
ymj123 2019-02-20 18:10:05 +08:00 via Android 1
是想让你把各种方式列举出来分析优劣吗?
|
15
jiangnanyanyu 2019-02-20 18:55:41 +08:00 via Android
你问他最好具体是指哪方面呢?有没有一个衡量的标准呢,如果没有,那么怎么得出来的最好呢?
|
16
911speedstar 2019-02-20 22:15:51 +08:00
问的是进程间通信,socket。。。没有别的了
|
17
luozic 2019-02-20 22:19:30 +08:00 via iPhone
最好的设计? 已有技术实现里面?多进程之间 要么内存换性能先复制再修改,要么直接上数据库的事务同步方式。其他的有多少用的?
|
18
tempdban 2019-02-21 07:05:36 +08:00 via Android
放在共享内存中的无锁队列
|
19
4KMOMhIkocgLELMt 2019-02-21 08:32:54 +08:00 via iPhone
进程通信不用强调线程吧?
socketpair or Local socket ? openbinder ? |
20
hp66722667 2019-02-21 10:25:13 +08:00
感觉面试官随便找了一个不可能回答出完美答案的问题,随便意思意思,估计他自己都不知道
|
21
BubbleNoodle 2019-02-21 12:12:58 +08:00 1
最好的设计是 tm 的不断迭代出来的
|
22
old18 2019-02-21 15:17:22 +08:00
脱离了业务场景问最好的的设计都是耍流氓.
|
23
shange123 2019-02-23 16:53:19 +08:00
没有最好的设计,只有最适合的场景
|