您的位置:首页 > 其它

多进程和多线程

2016-05-27 18:38 211 查看
我们都知道进程是操作系统资源分配的最小单位,而线程是CPU调度的最小单位。

先说说多线程的好处:

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

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

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

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

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

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

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

(2)在内存和CPU方面:

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

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

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

(3)在可靠性方面:

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

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

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

另外我们认为如果两个任务关联性比较小的话,我们可以使用多进程;而如果关联性比较大,而且存在一个任务比较轻量级而且需要快速启动或者切换,我们优先率使用多线程。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  多线程 线程