有勇气的牛排博客

python并发与并行的区别

有勇气的牛排 609 Python 2024-08-22 23:25:32

前言

并发:适用于I/O密集任务,如爬虫、文件读写、UI应用。
并行:适用于CPU密集型人物,如图像处理、科学计算。

1 并发 Concurrency (任务切换)

1.1 定义

  • 指在同一时间内处理多个任务。通过任务切换来实现任务处理。

  • 任务不一定在物理上同时执行。

1.2 场景

适用于:I/O密集型任务

1、网络请求

爬虫在等待响应的时候,同时发起多个其他请求,在一个请求等待的过程中,去执行其他请求,来提高请求。

(慎用:爬虫过快等同于ddos,不要觉得技术牛逼)

2、文件读取

3、用户界面UI应用

2 并行

Parallelism

2.1 定义

  • 指在同一时间同时处理多个任务。

  • 利用多核处理器,使任务能够真正同时执行。

人类语言描述:

任务同时、独立执行;利用多核处理器实现

2.2 场景

适用于:CPU 密集型任务,即需要大量计算资源。


留言

专栏
文章
加入群聊