併發
擁有處理多個任務的能力。對於單核cpu來說,只能處理併發
並行擁有同時處理多個任務的能力,對於多核cpu,即可以併發和並行同步和非同步強調的是訊息通訊機制如果乙個人這樣處理:先燒水,燒水的過程中啥也不幹,就一直等著,等水開後,再把茶葉放到開水壺中。這種處理方法就是同步處理
也就是說,乙個任務需要多步執行,如果上一步沒有執行結束,那麼下一步任務就一直等待。等到上一步任務完成後(一般會有結果),下一步的任務才繼續執行
在計算機中:如果一段**a的執行中需要呼叫另一端**b,那麼**a就會一直等待,直到**b執行結束後才繼續向下執行
非同步如果這樣做:用乙個會報警的水壺。吧涼水放到水壺裡,點著火就去幹其他事情了。等水壺的報警器報警的時候,他再過去吧茶葉放到開水壺裡。這就是非同步操作。
此人改進過程:用了乙個會報警的水壺,他把涼水放到水壺裡,點著火後就去幹其他事了。同事交代他的僕人等水開了就把茶葉放到開水壺裡,等水壺的報警器報警的時候,他的僕人就去吧茶葉放到開水壺裡。
僕人就相當於計算機非同步操作中的**函式。水壺報警相當於呼叫**函式阻塞和非阻塞強調的是程式在等待呼叫結果(訊息,返回值)時的狀態
阻塞程式在等待的過程中,執行緒是掛起狀態。就像剛才的例子中,這個燒水的人,在等待水開的過程中在睡覺。而同步等待的過程中,執行緒是啟用狀態
非阻塞程序是作業系統最小的資源分配單位。執行緒是作業系統最小的執行單元。
程序(我用的是 multiprocessing 模組)
程序是執行著的程式以及其占用的系統資源的總和。每個程序都有獨立的記憶體空間。
建立乙個程序(process)
子程序阻塞程序(程序物件的join方法)
守護程序
佇列(queue、joinablequeue)【生產/消防 模型】、鎖、訊號量、程序池、事件、管道
程序,執行緒,攜程複習
1 程序 正在進行的乙個過程或者說是乙個任務,而負責執行的就是cpu 2 同有個程式執行兩次,也就是兩個程序 3 同步執行 乙個程式正在執行,另乙個程式等執行完後才能執行 4 非同步執行 乙個程式正在執行時,另乙個程式無需等待執行完才執行,就可以執行。當有訊息返回系統會通知後者進行處理 5 無論並行...
程序 執行緒 協程理解
批處理 指乙個處理完了另乙個再處理 程序 即每個程式的執行的 全部流程 加上執行現場 當前執行場景 併發 因為多個程式在乙個cpu上不斷切換,人類看起來如同程式在同時執行,這就是併發 並行 即多個程式同時在多個cpu上執行,就是並行 執行緒 程序內部,有多個執行流程 加上每個流程的執行場景 這個流程...
Python執行緒,程序,攜程,I O同步,非同步
舉個栗子 我想get三個url,先用普通的for迴圈 import requests from multiprocessing import process from threading import thread import requests import time 正常遍歷 序列 同步 def...