多工就是可以讓一台電腦同時執行多個命令。
以前的單核cpu是怎麼做到同時執行多個命令的?(時間片輪轉)
——其實以前的單核cpu是讓作業系統交替執行命令,每個任務執行0.01秒,這樣看起來就像是在同時執行多個命令。就跟手翻動畫一樣。
並行:真的多工
併發:假的多工
執行緒
乙個程式執行,一定有乙個執行**的東西,這個東西稱作 《執行緒》
就像游標一行一行的往下移動,執行每一行**
多個執行緒,就會出現多個游標,分為主線程和子執行緒
當主線程執行完所有**,就要等子執行緒,當子執行緒執行完,主線程才能結束。(幫子執行緒處理垃圾)
只有主線程結束,程式才結束。不是程式結束,主線程才結束。
t1 = threading.thread(target = sing)
應該把函式名sing給target,不能用sing(),sing()表示呼叫函式
t1.start() 表示建立子執行緒,
threading.enumerate() 用來獲取當前所有的執行緒,與以前的用法不同
執行緒的執行是沒有先後順序的,如果子執行緒沒有延時,很快就執行完,那麼當你呼叫時,獲得的列表只有主線程
在建立物件時 執行緒沒有建立
當呼叫 xx.start() 時執行緒才建立並開始執行
當呼叫的方法比較複雜時,可以把他封裝成類,start會自動呼叫run方法,然後在run裡面呼叫類裡面的其他方法
xx.start()只建立了乙個執行緒,執行 run() 如果裡面有其他方法,在run()呼叫
Python 多工(協程) day1
比執行緒所需的資源更少 可以用yield 實現多工,其實是併發,但速度很快,相當於同時進行 import time def test1 while true print 1 yield def test2 while true print 2 yield def main t1 test1 t2 t...
多工程式設計 程序和執行緒day1
多工 實現方式 匯入模組 import multiprocessing 建立乙個程序物件 a multiprocessing.process target 函式名 啟動建立好的程序 a.start 多執行緒 實現步驟 匯入模組 import threading 建立乙個程序物件 a threadin...
python多工 執行緒
併發 指的是任務數多餘cpu核數,通過作業系統的各種任務排程演算法,實現用多個任務 一起 執行 實際上總有一些任務不在執行,因為切換任務的速度相當快,看上去一起執行而已 並行 指的是任務數小於等於cpu核數,即任務真的是一起執行的 執行緒python的thread模組是比較底層的模組,python的...