摘要: 目录: 一 IO模型介绍 二 阻塞IO(blocking IO) 三 非阻塞IO(non-blocking IO) 四 多路复用IO(IO multiplexing) 五 异步IO(Asynchronous I/O) 六 IO模型比较分析 七 selectors模块 视频链接 一 IO模型介绍 为了 阅读全文
posted @ 2021-02-09 16:22 云long 阅读(79) 评论(0) 推荐(0) 编辑
摘要: 引子 本节的主题是基于单线程来实现并发,即只用一个主线程(很明显可利用的cpu只有一个)情况下实现并发,为此我们需要先回顾下并发的本质:切换+保存状态 cpu正在运行一个任务,会在两种情况下切走去执行其他的任务(切换由操作系统强制控制),一种情况是该任务发生了阻塞,另外一种情况是该任务计算的时间过长 阅读全文
posted @ 2021-02-09 16:19 云long 阅读(760) 评论(0) 推荐(0) 编辑
摘要: 理论知识 全局解释器锁GIL Python代码的执行由Python虚拟机(也叫解释器主循环)来控制。Python在设计之初就考虑到要在主循环中,同时只有一个线程在执行。虽然 Python 解释器中可以“运行”多个线程,但在任意时刻只有一个线程在解释器中运行。 对Python虚拟机的访问由全局解释器锁 阅读全文
posted @ 2021-02-09 14:50 云long 阅读(380) 评论(0) 推荐(0) 编辑
摘要: 什么是线程 在传统操作系统中,每个进程有一个地址空间,而且默认就有一个控制线程 线程顾名思义,就是一条流水线工作的过程,一条流水线必须属于一个车间,一个车间的工作过程是一个进程 车间负责把资源整合到一起,是一个资源单位,而一个车间内至少有一个流水线 流水线的工作需要电源,电源就相当于cpu 所以,进 阅读全文
posted @ 2021-02-09 13:39 云long 阅读(76) 评论(0) 推荐(0) 编辑
摘要: 运行中的程序就是一个进程。所有的进程都是通过它的父进程来创建的。因此,运行起来的python程序也是一个进程,那么我们也可以在程序中再创建进程。多个进程可以实现并发效果。 1.multiprocessing模块介绍 python中的多线程无法利用多核优势,如果想要充分地使用多核CPU的资源(os.c 阅读全文
posted @ 2021-02-09 09:51 云long 阅读(414) 评论(0) 推荐(0) 编辑