什么是多线程,多进程?

 我来答
云影仙踪
2014-09-27
知道答主
回答量:5
采纳率:0%
帮助的人:4.8万
展开全部
百度

什么是多线程,多进程?
2011-06-21 | 分享
问题补充:进程和线程有什么区别?
10分钟内有问必答前往下载
满意回答
■什么是多线程:

多线程是为了使得多个线程并行的工作以完成多项任务,以提高系统的效率。线程是在同一时间需要完成多项任务的时候被实现的。

使用线程的好处有以下几点:

·使用线程可以把占据长时间的程序中的任务放到后台去处理

·用户界面可以更加吸引人,这样比如用户点击了一个按钮去触发某些事件的处理,可以弹出一个进度条来显示处理的进度

·程序的运行速度可能加快

·在一些等待的任务实现上如用户输入、文件读写和网络收发数据等,线程就比较游泳了。在这种情况下我们可以释放一些珍贵的资源如内存占用等等。

====

■什么是多进程:

进程是程序在计算机上的一次执行活动。当你运行一个程序,你就启动了一个进程。显然,程序是死的(静态的),进程是活的(动态的)。进程可以分为系统进程和用户进程。凡是用于完成操作系统的各种功能的进程就是系统进程,它们就是处于运行状态下的操作系统本身;用户进程就不必我多讲了吧,所有由你启动的进程都是用户进程。进程是操作系统进行资源分配的单位。
在Windows下,进程又被细化为线程,也就是一个进程下有多个能独立运行的更小的单位。
在同一个时间里,同一个计算机系统中如果允许两个或两个以上的进程处于运行状态,这便是多任务。现代的操作系统几乎都是多任务操作系统,能够同时管理多个进程的运行。 多任务带来的好处是明显的,比如你可以边听mp3边上网,与此同时甚至可以将下载的文档打印出来,而这些任务之间丝毫不会相互干扰。那么这里就涉及到并行的问题,俗话说,一心不能二用,这对计算机也一样,原则上一个CPU只能分配给一个进程,以便运行这个进程。我们通常使用的计算机中只有一个CPU,也就是说只有一颗心,要让它一心多用,同时运行多个进程,就必须使用并发技术。实现并发技术相当复杂,最容易理解的是“时间片轮转进程调度算法”,它的思想简单介绍如下:在操作系统的管理下,所有正在运行的进程轮流使用CPU,每个进程允许占用CPU的时间非常短(比如10毫秒),这样用户根本感觉不出来CPU是在轮流为多个进程服务,就好象所有的进程都在不间断地运行一样。但实际上在任何一个时间内有且仅有一个进程占有CPU。
如果一台计算机有多个CPU,情况就不同了,如果进程数小于CPU数,则不同的进程可以分配给不同的CPU来运行,这样,多个进程就是真正同时运行的,这便是并行。但如果进程数大于CPU数,则仍然需要使用并发技术。
在Windows中,进行CPU分配是以线程为单位的,一个进程可能由多个线程组成,这时情况更加复杂,但简单地说,有如下关系:

总线程数<= CPU数量:并行运行

总线程数> CPU数量:并发运行

并行运行的效率显然高于并发运行,所以在多CPU的计算机中,多任务的效率比较高。但是,如果在多CPU计算机中只运行一个进程(线程),就不能发挥多CPU的优势。

这里涉及到多任务操作系统的问题,多任务操作系统(如Windows)的基本原理是:操作系统将CPU的时间片分配给多个线程,每个线程在操作系统指定的时间片内完成(注意,这里的多个线程是分属于不同进程的).操作系统不断的从一个线程的执行切换到另一个线程的执行,如此往复,宏观上看来,就好像是多个线程在一起执行.由于这多个线程分属于不同的进程,因此在我们看来,就好像是多个进程在同时执行,这样就实现了多任务.Whoops,真绕口. ... 展开全部>
追问
进程和线程它们之间有什么区别?
回答
简单的说,你每启动一个程序,就启动了一个进程。在Windows 3.x下,进程是最小运行单位。在Wi...展开>
sdyitansy | 2011-06-22
71
0

百度知道

作业帮

宝宝知道

今日头条

暴风影音

女生秘密

kk唱响

秀美甲

汽车报价大

花田交友

酷狗音乐

同城约会
相关问题
什么是多线程和多进程1
什么是多线程、多进程?97
多线程和多进程分别是什么意思?5
什么叫"多线程"或"多进程"技术呀~!3
计算机什么是多线程,什么是多进程?1
多进程和多线程有什么区别?6
多线程,多进程并发的目的和意义是什么?1
更多相关问题>>
用APP一键提问“什么是多...”的问题
其他回答
多线程是嵌入式LINUX里面的,多进程是EDA里面的。
影风逐尘 | 2011-06-21
0
1

关于“多进程”的更多知识
进程和线程有什么区别?什么是多线程?71
C内存共享进程通信范例7
多进程和多线程有什么区别?6
Linux下C实现多进程同步并行3
用python多进程模块multiprocessing创建的子进程如何共享
追答
求采纳 虽然是复制的0.0
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
匿名用户
推荐于2016-08-02
展开全部
多线程是为了使得多个线程并行的工作以完成多项任务,以提高系统的效率。线程是在同一时间需要完成多项任务的时候被实现的。使用线程的好处有以下几点:·使用线程可以把占据长时间的程序中的任务放到后台去处理·用户界面可以更加吸引人,这样比如用户点击了一个按钮去触发某些事件的处理,可以弹出一个进度条来显示处理的进度·程序的运行速度可能加快·在一些等待的任务实现上如用户输入、文件读写和网络收发数据等,线程就比较游泳了。
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
小杰的忧桑
2019-09-23
知道答主
回答量:2
采纳率:0%
帮助的人:926
展开全部
1、进程顾名思义就是正在运行的程序,但是它其实只是一个资源单位,想要真正的执行,还得是线程,线程才是真正的执行单位。
2、进程之间数据是独立的,而同一个进程的多个线程之间是数据共享的。
3、开多进程,需要申请新的内存空间,然后把程序拷贝到新的内存空间,再运行。而开线程是直接fork一个线程,资源消耗比较小。
4、如果是io密集型的任务,当然是多线程比较好,但是如果是计算密集型的任务,还是多进程比较好。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式