多进程加线程时进程间通信最好的设计是怎样
1 dychenyi 2019-02-20 17:31:25 +08:00 貌似可以看下 Chrome 多进程架构 |
![]() | 2 xxxy 2019-02-20 17:35:23 +08:00 ![]() 我可以背出来:信号、管道、消息队列、共享内存 |
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 ![]() 是想让你把各种方式列举出来分析优劣吗? |
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 ![]() 最好的设计是 tm 的不断迭代出来的 |
22 old18 2019-02-21 15:17:22 +08:00 脱离了业务场景问最好的的设计都是耍流氓. |
23 shange123 2019-02-23 16:53:19 +08:00 没有最好的设计,只有最适合的场景 |