【总结】Python多线程
【总结】Python多线程
- 备注
- 一、基本概念
- 二、
备注
2025/08/15 星期五
最近用到了python的多线程发现和其他语言有点不同记录一下
一、基本概念
首先要理解一下线程、进程和协程的概念
线程(Thread):是计算机能够调度的最小计算单位
进程(Process):是正在运行的程序,拥有独立的内存空间
协程(Coroutine):是由编程语言在用户态显式调度的轻量级调度机制,不经过操作系统内核的调度
再来看一下我们编程中最常遇到的问题,就是当程序进行一个耗时任务时,程序就不能进行其他任务了,这就有了并发的概念
并发(Concurrency):是在同一时间内具有处理多个任务的能力
并发是一种能力,要想实现并发有两种思路:
并行(Parallelism):是同一时间同时执行多个任务,如:多进程和多线程
异步(Asynchronous):是发起一个耗时任务后,不阻塞执行流程等待结果返回,继续执行其他操作,如:回调、协程
(类似的在硬件层面,操作系统可以通过CPU单核的分时复用或者CPU多核的并行来实现并发。分时复用与异步有相似之处但不相比)
并发的应用场景主要有两类:
CPU密集型:需要把一个大型计算任务拆分成多个小任务同时计算,优先采用并行思路,场景一般是科学计算、多媒体处理、机器学习、数据分析、密码学运算、项目编译
IO密集型:不因等待网络、磁盘等的I/O操作而空闲阻塞,优先采用异步思路,场景一般是Web服务的API接口、实时通信、数据爬虫、服务间通信