多进程与多线程的选择

发布时间:2020-06-26 00:47:52 作者:zmh009_NAME
来源:网络 阅读:468

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


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


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

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

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

内存CPU:(线程占优

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

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

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

进程复杂且慢;

线程简单且块;

编程与调试:(进程占优

进程编程与调试简单;

线程编程与调试复杂;

可靠性:(进程占优

进程间不会影响;

线程dump整个进程dump

分布式:(进程占优

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

线程适应多核分布式;

优先情况

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

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

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

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

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

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

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


可以改进的地方就评个论啦多进程与多线程的选择

推荐阅读:
  1. 多线程和多进程的选择
  2. Python中多线程与多进程对比的示例分析

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

多线程多进程

上一篇:VSCode对Golang程序进行调试时报错的解决方法

下一篇:elementUI 动态渲染三级菜单

相关阅读

您好,登录后才能下订单哦!

密码登录
登录注册
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》