程序執行緒協程的區別

2021-09-02 22:09:14 字數 775 閱讀 7616

### 程序池

乙個程序占用乙個cpu,占用一定的記憶體空間。一般cpu配置都是4核,如果開的程序太多,其他的程式就得等著。

###### 什麼情況家使用多程序?

cpu是用來計算的。所以在cpu密集運算的情況下,才使用多程序。

具體要開幾個程序,根據機器的實際配置和實際生產情況而定。

### `執行緒池`

程序裡面才有執行緒,乙個程序裡面預設乙個執行緒。

###### 什麼情況下使用多執行緒?

多執行緒適合io操作,但是也不是開啟的執行緒越多越好,需要根據實際情況而定。

太多的執行緒會占用過多的系統資源(記憶體開銷,cpu開銷)。

### `協程`

協程:又稱微執行緒纖程。通俗的講就是比執行緒還要小的執行緒,所以才叫微執行緒。

優點:1. 使用高併發、高擴充套件、低效能的;乙個cpu支援上萬的協程都不是問題。所以很適用於高併發處理。

2. 無需執行緒的上下文切換開銷;(乍一看,什麼意思呢?我們都知道python實際上是就是單執行緒,那都是怎麼實現高併發操作呢,就是cpu高速的切換,每個任務都幹一點,最後看上去是一起完事兒的,肉眼感覺就是多執行緒、多程序)

缺點:1. 無法利用cpu的多核優點,這個好理解,程序裡面包含執行緒,而協程就是細分後的協程,也就是說乙個程序裡面首先是執行緒其後才是協程,那肯定是用不了多核了,不過可以多程序配合,使用cpu的密集運算,平時我們用不到。

一般情況下用的比較多的是asyncio或者是gevent這兩個技術實現協程,asyncio是python自帶的技術,gevent第三方庫,個人比較喜歡gevent這個技術。

python 程序 執行緒 協程的區別

一 程序 process 多程序模式最大的優點就是穩定性高,因為乙個子程序崩潰了,不會影響主程序和其他子程序。當然主程序掛了所有程序就全掛了,但是主程序只負責分配任務,掛掉的概率低 apache最早就是採用多程序模式。多程序模式的缺點是建立程序的代價大,在unix linux系統下,用fork呼叫還...

程序和執行緒 協程的區別

現在多程序多執行緒已經是老生常談了,協程也在最近幾年流行起來。python中有協程庫gevent,py web框架tornado中也用了gevent封裝好的協程。本文主要介紹程序 執行緒和協程三者之間的區別。一 概念 1 程序 程序是具有一定獨立功能的程式關於某個資料集合上的一次執行活動,程序是系統...

程序和執行緒 協程的區別

現在多程序多執行緒已經是老生常談了,協程也在最近幾年流行起來。python中有協程庫gevent,py web框架tornado中也用了gevent封裝好的協程。本文主要介紹程序 執行緒和協程三者之間的區別。一 概念 1 程序 程序是具有一定獨立功能的程式關於某個資料集合上的一次執行活動,程序是系統...