WangFuJie Blog

路在脚下,心向远方

Python基础 - 异步IO

异步IO

异步IO用于在等待 IO 操作时不中断程序的其他部分执行, 通过单独的模块asyncio来实现。它依赖事件循环机制,事件循环会自动检测并执行我们添加给它的任务,遇到IO就进行任务的切换。

Python基础 - IO模型

IO模型

客户端和服务端通信时,设计数据准备和数据copy两个过程,这过程中会遇到网络IO,前面我们默认都是阻塞IO,但是阻塞IO的效率较低。本文中我们会介绍非阻塞IO和IO多路复用,以及它们的代码实现。

Python基础 - 协程

协程

协程也被称为微线程,它是一种用户态的上下文切换技术,简单来说就是单线程下实现并发效果。当程序遇到IO时,来完成代码的上下文切换,达到欺骗CPU的效果,让CPU以为我们的程序一直在运行。

Python基础 - 线程池与进程池

线程池与进程池

在开设线程和进程时是会消耗资源的,因此python提供了池的技术,一次创建多个进程或线程,在使用线程池或进程池过程中这些进程或线程不会被频繁创建和销毁。并且池一次性创建了指定数量的进程和进程,有效保护了硬件资源,防止软件过多的创建进程和线程。

Python基础 - 多线程vs多进程

多线程vs多进程

Cpython多线程因为GIL的存在无法利用多核能力,但并不代表多线程没用。多线程适用于IO密集型场景。本文中将对计算密集型和IO密集型场景进行演示,同时介绍死锁、递归锁、信号量以及Event事件。