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 密集型任务,即需要大量计算资源。
<h2><a id="_0"></a>前言</h2>
<p>并发:适用于I/O密集任务,如爬虫、文件读写、UI应用。<br />
并行:适用于CPU密集型人物,如图像处理、科学计算。</p>
<h2><a id="1__Concurrency__5"></a>1 并发 Concurrency (任务切换)</h2>
<h3><a id="11__7"></a>1.1 定义</h3>
<ul>
<li>
<p>指在同一时间内处理多个任务。通过<strong>任务切换</strong>来实现任务处理。</p>
</li>
<li>
<p>任务不一定在物理上同时执行。</p>
</li>
</ul>
<h3><a id="12__13"></a>1.2 场景</h3>
<p>适用于:<strong>I/O密集型任务</strong></p>
<p>1、网络请求</p>
<p>爬虫在等待响应的时候,同时发起多个其他请求,在一个请求等待的过程中,去执行其他请求,来提高请求。</p>
<p>(慎用:爬虫过快等同于ddos,不要觉得技术牛逼)</p>
<p>2、文件读取</p>
<p>3、用户界面UI应用</p>
<h2><a id="2__29"></a>2 并行</h2>
<p>Parallelism</p>
<h3><a id="21__33"></a>2.1 定义</h3>
<ul>
<li>
<p>指在同一时间同时处理多个任务。</p>
</li>
<li>
<p>利用多核处理器,使任务能够真正同时执行。</p>
</li>
</ul>
<p>人类语言描述:</p>
<p>任务同时、独立执行;利用多核处理器实现</p>
<h3><a id="22__45"></a>2.2 场景</h3>
<p>适用于:CPU 密集型任务,即需要大量计算资源。</p>
留言