系列文章回顾
【python】(01)初识装饰器Decorator
【python】(02)初识迭代器Iterator
【python】(03)初识生成器Generator
【python】(04)python中实现多任务并发和并行的区别
文章目录
在python中,如果有多个任务相互之间无依赖关系,可以同时进行,此时为了提升资源利用率,从而减少任务执行时间,可以使用并发(Concurrency)、并行(Parallelism)来达到这个目的。
并发和并行两种方式针对不同类型的任务有各自的优势,结合使用可以充分利用多核处理器的性能,并提高程序的整体效率。
一.并发 vs 并行的定义
并发是指多个任务在同一时间段内交替执行,而并行是指多个任务同时在不同处理器核心上执行。
1.1 并发
- 1)适用场景:并发适合I/O密集型任务,比如网络请求、文件读写等操作。因为这些操作通常会涉及等待外部资源响应。
- 2)实现手段:使用线程或协程来实现
- 3)并发编程库:python中常用的并发编程库包括threading(线程)和asyncio(协程)。
- 4)并发其实是“伪并行”,在并发中不同任务之间通过时间片轮转或事件驱动等方式交替进行,从外部看起来好像是同时进行的。【更通俗一点讲,并发就是让程序在等待某些操作完成的过程中继续执行其他任务,提高了系统的资源利用率和响应速度。】
1.2 并行
- 1)适用场景:并发适合CPU密集型任务,比如大量的计算或数据处理等操作。
- 2)实现手段:使用进程来实现
- 3)并行编程库:python中常用的并行编程库包括multiprocessing。
- 4)并行可以让任务在不同的处理核心CPU上并行执行,从而加速任务的处理速度,特别是当任务之间相互独立时,可以实现真正的同时执行。