多进程和多线程

来源:互联网 发布:阿里云os手机好用吗 编辑:程序博客网 时间:2024/05/22 08:10

我们都知道进程是操作系统资源分配的最小单位,而线程是CPU调度的最小单位。
先说说多线程的好处:
(1)可以把占据时间长的任务放到后台去执行;
(2)比如当用户点击按钮触发一个事件后,可以使用界面的进度条显示处理的进度;
(3)一个进程中有多个线程的话,可能相对的加快程序的执行;

下面来对比一下多进程和多线进程在各方面的优劣:
(1)数据共享和同步方面:
进程之间的数据是分开的,因此多进程需要使用IPC进行数据共享,数据同步方面相对而言简单;
线程属于同一个进程,因此共享数据很方便,也就造成了数据同步比较困难。
(2)在内存和CPU方面:
进程占用内存大,CPU切换起来消耗比较大;
线程暂用资源少,切换快捷方便,CPU利用率相对较高。
因此如果要频繁创建销毁或者频繁切换的任务,优先使用多线程。比如说web服务器,对应一个连接会创建一个线程进行响应。
(3)在可靠性方面:
多进程之间并不互相影响,可靠性比较高;
而一个进程挂掉,全部的线程都挂掉。
相对而言多进程编程实现比较简单,调试容易,而多线程相对而言比较复杂。如果是多机的分布式,可以优先考虑使用多进程,如果仅仅是多核运算,则优先使用多线程。
另外我们认为如果两个任务关联性比较小的话,我们可以使用多进程;而如果关联性比较大,而且存在一个任务比较轻量级而且需要快速启动或者切换,我们优先率使用多线程。

0 0
原创粉丝点击