WangFuJie Blog

路在脚下,心向远方

Python基础 - 协程

协程

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

Python基础 - 线程池与进程池

线程池与进程池

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

Python基础 - 多线程vs多进程

多线程vs多进程

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

Python基础 - 线程

线程

由于进程和线程模块的开发遵循了鸭子类型,线程的创建和进程的操作基本是一样的。但是在Cpython中由于GIL全局解释器锁的存在,线程无法真正的并行,无法有效利用CPU的多核优势。

Python基础 - 进程

进程

进程就是正在运行的程序实例,也是操作系统进行资源分配和调度的基本单位,在python中有多种创建进程的方式,但是主要通过multiprocessing模块实现。多进程编程中会存在共享资源访问,进程间通信等问题,分别使用互斥锁和消息队列解决,最后本文将介绍设计模型生产者-消费者模型。