线程和进程

区别:进程是操作系统资源分配的基本单位,而线程是进程调度和执行的基本单位

对操作系统来说,一个任务就是一个进程,比如打开一个浏览器就是启动一个浏览器进程,打开 一个qq就启动了一个qq进程,打开一个word就启动一个word进程。
就word进程来说,在word里面可以同时进行打字、拼写检查、打印等事情。在一个进程内部要同时干多件事情,就需要运行多个子任务,我们把进程内的这些子任务成为线程。

开销:每个进程都有独立的代码和数据空间(程序上下文),进程之间的切换会有较大的开销;
线程,比如QQ里面的多个聊天窗口,它们是同一类线程,共享代码和数据空间,每个线程都有自己的独立的运行栈和程序计数器,
线程之间的切换开销小。
内存分配:系统在运行的时候会为每个进程分配不同的内存空间;而线程,除了CPU外,系统不会为线程分配内存
(线程所使用的的资源来自其所属进程的资源),线程组之间只能共享资源。
包含关系:由于每个进程至少要干一件事,所以一个进程至少有一个线程。线程是进程的一部分。

 

 

 

 

参考:https://blog.csdn.net/kuangsonghan/article/details/80674777
https://www.liaoxuefeng.com/wiki/897692888725344/923056118147584

posted @ 2019-11-22 17:28  弘666  阅读(122)  评论(0编辑  收藏  举报