多线程vs多进程分析、比较和建议 多线程和多进程
误区1:把并发的难度归结到多线程or多进程身上。比如像锁之类问题,如果某个模型很难实现和规避,另一个模型也好不到哪里去。如果某个模型很容易搞定,另一个模型最多复杂一点点。比如某个应用多进程时不需要用锁,那好,多线程程序用TSS,也就多一个锁,能复杂到哪里去?
误区2:把并发和分布式糅合在一起,得到晕头的结论:多进程可以运行在多台主机,多线程不行。程序不管是多进程还是多线程,都可以抓去另一台主机运行,但这些主机间能否彼此协作,取决于软件是否是分布式设计。
误区3:裸奔比较性能,其实这点真不重要,两者都够快了。如果实现后发现一个模型比另一个模型快得多,只能说明具体实现有问题。
误区4:比较创建销毁的代价,如果是高性能的应用,肯定不会经常创建、销毁进程/线程;如果不是那么在意性能的应用,两者的些许差异有意义吗?
我的看法:
多线程的最主要优点是:共享数据方便(都在一个地址空间,不需要IPC);可移植性好。
多进程的最主要优点是:可靠性较高(进程间彼此隔绝,一个进程被OOXX不会影响其他进程);能够在外部监控(因为进程是操作系统分配资源的对象)。
开发难度:多线程比较简单,因为不用去搞体位繁多的IPC,故不容易被不熟悉的API阴到。
调试难度:都很麻烦,是开发者的噩梦。所以需要多些单元测试,多测试,多做日志,少调试。
对于选择的建议:
需要能工作在windows --=> 多线程
线程/进程间没有什么需要共享的数据 =>多进程优先,反之多线程优先。需要共享的数据越多越复杂,多线程得分越高。
对可靠性要求高 =>取决于开发团队,无数优秀产品证明多线程程序可以坚如磐石,但未必每个团队都能做到。
需要监控单个工作者占用的资源 => 多进程
开始学习并发编程 =>多线程,学习曲线较低,要掌握的API较少
更多阅读
扫盲|终于知道轩尼诗VS、VSOP和XO之间的区别了…… 轩尼诗vsop xo
不管你是走入烟酒行,或是夜场,或是大型商超,亦或是各大免税店,酒架上轩尼诗(Hennessy)的logo总是特别显眼。作为普通消费者,不少人对轩尼诗VS、VSOP和XO等系列是傻傻分不清楚。只道都是酒,为什么有这些区分?既是同一品牌,为什么价格相差悬殊?看
保护色、拟态和警戒色3种生物对环境适应方式的辨析 拟态 保护色
保护色、拟态和警戒色3种生物对环境适应方式的辨析是中考生物部分常考的知识点之一。保护色:动物具有与环境色彩相似的体色。关于保护色要注意一点:保护色并不单纯指生物为了躲避天敌攻击而长着与环境色彩相似的体色。比如,东北虎的斑
如何设置相机的光圈、快门和感光度? 光圈快门感光度
这篇文档主要是关于光圈、快门和ISO的话题,这三个参数在拍照时非常重要的,直接影响照片的最终效果!光圈是一个用来控制光线透过镜头,进入机身内感光面的光量的装置,它通常是在镜头内。光圈大小我们是用f值来表示,数值越大光圈孔径越小,数值
火影忍者441话分析、442话情报预测分析组图+综合贴 组图 奶奶抱 走红网络
无良情报站:火影忍者441话分析、442话情报预测分析(组图+综合贴)火影忍者441话分析、442话情报预测分析 火影忍者422话情报火影忍者421话分析火影忍者422情报图听悦读分享---Sin奇/You趣/Blog闻/See考 博客i将会在每周第一时间收集、
中国的昨天、今天和明天,分析得太透彻了!爱国人士必转 爱国人士的爱国事迹
中国的昨天、今天和明天,分析得太透彻了!爱国人士必转2014-10-28戴旭闫王军作者:国防大学教授戴旭 今天中国的经济,有人说是房地产经济,我看有几分道理。在激素的刺激下,中国长成了一个没有骨头的大胖子。我们错把重量当力量,把肥大当