1. 程式人生 > >多任務-線程

多任務-線程

才會 多線程 spa 完成 函數 內容 cpu 如何 span

1.如今的電腦cup已經是多核了,可以實現多任務同時完成。

但是在之前,cpu仍然處於單核狀態時,同樣也可以實現多任務,那麽是如何完成的呢?

其實是,讓多任務交替執行,由於cpu的執行速度太快了,多以讓人們看起來是同時在執行,其實只是偽多任務罷了。

2.此時,就牽涉到了一個並行的問題,在什麽樣的情況下,能夠實現並行?

只有真正的在多核cpu中,才可以實現並行,但是,當任務數量遠遠多於核數時,操作系統就會將多任務輪流調度到多核上進行處理。

3.並發與並行

並發:指的是任務數多余cpu核數,通過操作系統的各種任務調度算法,實現用多個任務“一起”執行(實際上總有一些任務不在執行,因為切換任務的速度相當快,看上去一起執行而已)

並行:指的是任務數小於等於cpu核數,即任務真的是一起執行的

4.線程

創建線程: t = threading.Thread(target=saySorry) target= 的內容是我們的動作函數

啟動線程:只有當線程執行 t.start( ) , 才會創建一個線程,並開始執行

5.多線程中,主線程和子線程的執行問題

當多線程存在時,主線程會讓子線程執行結束才會結束

查看線程數量:length = len(threading.enumerate())

多任務-線程