前往小程序,Get更优阅读体验!
立即前往
发布
社区首页 >专栏 >多进程与多线程的选择

多进程与多线程的选择

作者头像
学徒漠筱歌
发布2022-07-17 10:24:25
发布2022-07-17 10:24:25
2030
举报
文章被收录于专栏:ZMHZMH

这类我总结了一些进程与线程的特点和选取方法,若有错误,不吝指正(^.^)

进程是资源分配的最小单位,线程是CPU调度的最小单位(基本概念啦)

数据同步与共享:(平分秋色

进程共享复杂需要IPC,数据分开同步简单;

线程共享进程数据,共享简单,但因此同步复杂;

内存CPU:(线程占优

进程占用内存多,切换复杂,CPU利用率低;

线程占用内存少,切换简单,CPU利用率高;

创建销毁和切换:(线程占优

进程复杂且慢;

线程简单且块;

编程与调试:(进程占优

进程编程与调试简单;

线程编程与调试复杂;

可靠性:(进程占优

进程间不会影响;

线程dump整个进程dump;

分布式:(进程占优

进程适应多核多机分布式,一个机子不够扩展到多台机器方便;

线程适应多核分布式;

优先情况

线程优先频繁创建销毁,如Web服务器,一个连接建立一个线程,断开则销毁;

线程优先进行大量计算,如图像处理、算法处理,因为要消耗许多CPU,切换频繁;

线程优先强相关处理、线程优先弱相关处理,强相关是当一列变量变化时另一列变量变化的可能性非常大的关系(如供求与价格),弱相关相反。这并不是一成不变的,要按照实际情况调整;

线程优先多核分布,进程优先多机分布;

都满足时选择最熟悉且拿手的方式。

在周丽论文的实验中(博客上看的,大家可以搜到),任务量较大(此处是255线程/进程,输出文字到控制台和日志文件,打印1000次时时间开销进程小于线程,因为有线程栈)进程效率高;

线程的销毁开销确实小于进程(在10万个线程/进程的环境下,线程开销是进程的约13分之一,同样是周丽论文的实验中的数据),因此在有大量销毁的情况优先考虑线程。

可以改进的地方就评个论啦

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2016-07-31,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档