什么场景下你们会用多进程

2015-11-06 13:57:08 +08:00
 Registering
昨天面试基础的问题,算法等都回答得 OK ,多进程知识点用的比较少,回来准备恶补恶补。

大家平时使用多进程一般都在哪些场景下使用,,

昨天面试官说如果打开一张大图,可以考虑在一个单独的进程中打开
9705 次点击
所在节点    Android
32 条回复
c24c4fe8
2015-11-06 14:03:55 +08:00
就是需要处理的信息提供得太慢,导致 cpu 性能没有充分利用,这个时候多进程能充分利用 cpu
bengol
2015-11-06 14:11:24 +08:00
@c24c4fe8 既然需要的信息提供的太慢,那么利用多进程以充分利用 CPU 来处理什么东西呢?
SYP
2015-11-06 14:16:20 +08:00
多核利用率还有异步的时候,基本和线程一样,只是同步代价大一些。
qw7692336
2015-11-06 14:26:36 +08:00
什么时候该用多线程,什么时候该用多进程?
wsy2220
2015-11-06 14:34:03 +08:00
多进程崩一个进程不影响其他的进程
harry890829
2015-11-06 14:36:47 +08:00
公司服务器现在用的是多线程构架,我准备全都改成多进程……使用共享内存来同步数据,要不然一个地方出现问题,整个就崩溃了,这个挺重要的,你当时应该问他,起进程处理图,为什么不起线程?
caliy
2015-11-06 14:37:43 +08:00
多进程大都在多任务并行,比如浏览器标签页,好处是互相独立,一个崩溃不影响其他,缺点是占用系统资源多,吃性能,大图的话当然单个进程,多进程有可能卡死,而且性能浪费
webjin
2015-11-06 14:42:03 +08:00
进程不够用的时候
a0000
2015-11-06 14:51:48 +08:00
@bengol 比如说同构数据处理,如果量大的话就可以考虑多线程,这个慢只是相对的。利用多线程可以提高 CPU 吞吐率。吞吐率上去了,整体的速度也就上去了
a0000
2015-11-06 14:54:53 +08:00
Android 开发好像就网络请求用到了多线程,其他的还没有碰到需求场景
不过有的场景可以利用 ExecutorService 线程服务框架来解决问题
hcymk2
2015-11-06 14:57:28 +08:00
java 基本用不到多进程吧。
你说的是多线程吧
Registering
2015-11-06 14:57:40 +08:00
@a0000 进程,进程,,不是说线程
Registering
2015-11-06 14:58:06 +08:00
@hcymk2 android 使用多进程确实不少
a0000
2015-11-06 14:59:44 +08:00
@Registering 额,多进程就不知道了
sunpj
2015-11-06 15:15:14 +08:00
多进程主要用来做各种黑科技。。比如双进程有个进程在后台保持长连接来监听推送,还有就是双进程防杀这种。。还有些就是当做公共的组件 比如阿里有个单点登录 意思是比如你登录过淘宝,你打开淘点点这种阿里系的 app 就不用登录,也是有个后台进程常驻的
Bown
2015-11-06 15:22:21 +08:00
一般场景都是用作守护吧,比如一个 app 具有 hotfix 的功能,但是因为某次 hotfix 导致 crash 了,这时需要再发布一次 patch 修复这个问题,可如果 crash 发生在启动时,那么 hotfix 自身就无法启动来使用新 patch 来修复,这时把 hotfix 单独放在一个进程就可以解决了
br00k
2015-11-06 16:51:22 +08:00
@Bown 用来刷流氓
rebbie
2015-11-06 17:53:42 +08:00
@harry890829 如果有共享的数据,那其实是不建议起进程的,一个进程挂掉同样会污染共享内存。如果共享通信的话,就还好
allan1st
2015-11-06 18:20:19 +08:00
有些内存泄露的时候,比如说有段时间 LeakCanary 报 VideoView 和 WebView 泄露,那么有关页面用单独 process 然后用完直接杀掉。
em70
2015-11-06 18:45:59 +08:00
任何网络请求都要放线程,否则 app 质量就不过关,因为用户环境很复杂,请求可能卡死

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

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

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

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

© 2021 V2EX