1. 程式人生 > 其它 >什麼是執行緒的上下文切換?

什麼是執行緒的上下文切換?

首先了解時間片:時間片是CPU分配給各個程式執行的時間,每個執行緒都會被分配給一個時間段,成為它的時間片(就是該程序允許執行的時間)。

上下文切換:CPU通過分配時間片來執行任務,當一個任務的時間片用完了,那麼就會被切換到另一個任務。在切換之前會儲存上一個任務的狀態(就是這個任務的上下文),當下次再切到這個任務繼續執行的時候,就會載入這個狀態。

作用(假並行):巨集觀上我們可以同時開啟多個應用程式,每個程式同時執行。微觀上因為只有一個CPU,一次只能處理程式要求的一部分,如何公平的處理各個任務的執行,一種方法就是引入時間片,每個程式輪流執行。

這就像我們同時讀兩本書,當我們在讀一本英文的技術書籍時,發現某個單詞不認識, 於是便開啟中英文詞典,但是在放下英文書籍之前,大腦必須先記住這本書讀到了多少頁的第多少行,等查完單詞之後,能夠繼續讀這本書。這樣的切換是會影響讀 書效率的,同樣上下文切換也會影響多執行緒的執行速度