多进程和多线程的比较


我们都知道进程是操作系统资源分配的最小单位,而线程是CPU调度的最小单位。

先说说多线程的好处:

(1)可以把占据时间长的任务放到后台去执行;

(2)比如当用户点击按钮触发一个事件后,可以使用界面的进度条显示处理的进度;

(3)一个进程中有多个线程的话,可能相对的加快程序的执行;


下面来对比一下多进程和多线进程在各方面的优劣:

(1)数据共享和同步方面:

进程之间的数据是分开的,因此多进程需要使用IPC进行数据共享,数据同步方面相对而言简单;

线程属于同一个进程,因此共享数据很方便,也就造成了数据同步比较困难。

(2)在内存和CPU方面:

进程占用内存大,CPU切换起来消耗比较大;

线程暂用资源少,切换快捷方便,CPU利用率相对较高。

因此如果要频繁创建销毁或者频繁切换的任务,优先使用多线程。比如说web服务器,对应一个连接会创建一个线程进行响应。

(3)在可靠性方面:

多进程之间并不互相影响,可靠性比较高;

而一个进程挂掉,全部的线程都挂掉。

相对而言多进程编程实现比较简单,调试容易,而多线程相对而言比较复杂。如果是多机的分布式,可以优先考虑使用多进程,如果仅仅是多核运算,则优先使用多线程。

另外我们认为如果两个任务关联性比较小的话,我们可以使用多进程;而如果关联性比较大,而且存在一个任务比较轻量级而且需要快速启动或者切换,我们优先率使用多线程。


参考资料:

http://renwen0524.blog.163.com/blog/static/73019455201141144453834/

http://www.2cto.com/kf/201007/53769.html


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值