"""
线程和进程
共同点:都是用来实现多任务
为什么要有多任务:--提高效率
eg:银行,如果只开一个工作窗口,是不是效率很差。开多个窗口将会大大提高工作效率,
也就是说:一件事我们可以使用对个进程(线程)进行解决。
问题1:线程和进程的区别
进程:是资源分配的单位,它有独立的内存空间。
线程:是CPU调度单位,利用时间片对线程进行调度。
CPU在任意时刻只能执行一个代码块(代码块当中会包含一个线程),因为CPU执行速度极快,
所以多线程执行时,CPU对时间进行切片分别执行线程,但是因为极快,所以感觉起来是同时执行。
线程和进程的包含关系:
一个进程包含多个线程。而且至少要有一个线程。因为线程是程序执行的基本单位。
什么时候用进程,什么时候用线程?
计算密集型的时候使用进程。
I/O密集型的时候使用线程。
"""
"""
GIL:全局解释器锁
是python解析器是在设计之初加入一个排他锁。
表示在任意时刻只有一个线程在解析器中运行。
开发团队曾经试图去掉GIL,但是以失败告终,
因为python的很多第三方库都死基于老的设计理念开发的,
所以改动的工作量非常大--放弃
但是给出了个解决方案--协程(微线程):线程之间的切换变得更加灵活,yield
协程是比线程还要小的调度单位。
python的多线程是伪多线程。
"""
线程、进程和协程
最新推荐文章于 2024-04-30 11:41:18 发布