洞察掌握android电视app开发中的安全与合规策略,提升企业运营效率
661
2022-08-24
进程与线程(1)- 基本概念
进程与线程
番外:对于进程与线程的困惑,我了解的一知半解。可以说,我整整困惑了两年。一直想好好彻底的弄清楚,所以在这里从三个层面对进程与线程进行剖析,希望能对你有一丢丢的帮助。
参考链接: http://python.jobbole.com/87760/
从下面几个方面解析进程与线程:
单核CPU是怎么执行多任务的?
操作系统轮流让各个任务交替执行,任务1执行0.01秒,切换到任务2,任务2执行0.01秒,再切换到任务3,执行0.01秒……这样反复执行下去。表面上看,每个任务都是交替执行的,但是,由于CPU的执行速度实在是太快了,我们感觉就像所有任务都在同时执行一样。
什么是真正的并行执行任务?
真正的并行执行多任务只能再多核CPU上实现。但是,由于任务数量远远多于CPU的核心数量,所以,操作系统也会自动把很多任务轮流调度到每个核心上执行。
什么是进程?
对于操作系统来说,一个任务就是一个进程(Process),比如打开一个浏览器就是启动一个浏览器进程,打开一个记事本就启动了一个记事本进程,打开两个记事本就启动了两个记事本进程,打开一个Word就启动了一个Word进程。
什么是线程?
有些进程不止同时干一件事,比如Word,它可以同时进行打字、拼写检查、打印等事情。在一个进程内部,要同时干多件事,就需要同时运行多个“子任务”,我们把进程内的这些“子任务”称为线程(Thread)。
由于每个进程至少要干一件事,所以,一个进程至少有一个线程。同时,多个线程可以同时执行,多线程的执行方式和多进程是一样的,也是由操作系统在多个线程之间快速切换,让每个线程都短暂地交替运行,看起来就像同时执行一样。当然,真正地同时执行多线程需要多核CPU才可能实现。
进程与线程的区别?
进程是程序在某个数据集合上的一次运行活动;线程是进程中的一个执行路径进程是系统资源分配的单位;线程是系统调度的单位进程之间不能共享资源;线程共享所在的进程的地址空间和其他资源进程拥有自己独立的地址空间(一个进程崩溃后,在保护模式下不会对其他进程产生影响);而线程没有,线程必须依赖于进程而存在,线程有自己的堆栈和局部变量,线程之间没有独立的地址空间,线程之间共享地址空间(一个线程死掉就等于整个进程死掉)。因此,多进程的程序要比多线程的程序健壮,但在进程切换时,耗费资源较大,效率差一些。
版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。
发表评论
暂时没有评论,来抢沙发吧~