进程、线程、协程 的理解

阅读: 评论:0

进程、线程、协程 的理解

进程、线程、协程 的理解

一、进程

比如通过一个QQ来实现聊天功能。那QQ程序怎么启动起来呢,操作系统把QQ程序丢在一个容器里并把它执行起来,而这个容器就是进程。那进程跟程序之间又是什么关系呢?

  • 程序是死的(只是在磁盘中的一堆指令代码),进程是活的(会占用CPU、内存、文件资源、IO等)
  • 进程是程序的运行实例

二、线程

维基百科:线程是操作系统能够进行运算调度的最小单位。它被包含在进程之中,是进程中的实际运作单位。一条线程指的是进程中一个单一顺序的控制流,一个进程中可以并发多个线程,每条线程并行执行不同的任务。

一个进程有多个线程,拿QQ为例子,需要有一个线程监听键盘的输入并转换为文字,需要有一个线程负责拉取对方发来的消息等。从操作系统的角度来看:

  • 进程是最小的资源管理分配单元
  • 线程是最小的执行单元
  • 线程是cpu调度的基本单位

无论是进程还是线程都是需要操作系统来控制的。拿线程来举例,线程有多个执行状态:初始化、可运行、运行中、阻塞、销毁 五种状态。这五种状态的转化关系如下:

线程的状态转化是由操作系统内核中的TCB(thread control block)线程控制块来改变的,需要耗费一定的CPU资源。

三、协程

​ 协程,又称微线程,纤程。英文名Coroutine。比线程更加轻量级,就像一个进程有多个线程一样,一个线程可以有多个协程。

四、多进程

同一时间里,同一计算机系统中如果允许两个或两个以上的进程处于允许状态,这就是多进程。

五、多线程

线程就是把一个进程分为很多片,每一片都可以是一个独立的流程与多进程的区别是只会使用一个进程的资源,线程间可以直接通信。

六、进程、线程、协程之间的区别?

进程、线程、协程
    1.1 先有进程,然后进程可以创建线程,线程是依附在进程里面的, 线程里面可以包含多个协程
    1.2 进程之间不共享全局变量,线程之间共享全局变量,但是要注意资源竞争的问题
    1.3 多进程开发比单进程多线程开发稳定性要强,但是多进程开发比多线程开发资源开销要大
    1.4 多线程开发线程之间执行是无序的,协程之间执行按照一定顺序交替执行
    1.5 协程以后主要用在网络爬虫和网络请求,开辟一个协程大概需要5k空间,开辟一个线程需要512k空间, 开辟一个进程占用资源最多

 

本文发布于:2024-01-28 17:39:15,感谢您对本站的认可!

本文链接:https://www.4u4v.net/it/17064347599115.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:线程   进程   协程
留言与评论(共有 0 条评论)
   
验证码:

Copyright ©2019-2022 Comsenz Inc.Powered by ©

网站地图1 网站地图2 网站地图3 网站地图4 网站地图5 网站地图6 网站地图7 网站地图8 网站地图9 网站地图10 网站地图11 网站地图12 网站地图13 网站地图14 网站地图15 网站地图16 网站地图17 网站地图18 网站地图19 网站地图20 网站地图21 网站地图22/a> 网站地图23