官术网_书友最值得收藏!

1.8 理解線程上下文切換

在多線程編程中,線程個數一般都大于CPU個數,而每個CPU同一時刻只能被一個線程使用,為了讓用戶感覺多個線程是在同時執行的,CPU資源的分配采用了時間片輪轉的策略,也就是給每個線程分配一個時間片,線程在時間片內占用CPU執行任務。當前線程使用完時間片后,就會處于就緒狀態并讓出CPU讓其他線程占用,這就是上下文切換,從當前線程的上下文切換到了其他線程。那么就有一個問題,讓出CPU的線程等下次輪到自己占有CPU時如何知道自己之前運行到哪里了?所以在切換線程上下文時需要保存當前線程的執行現場,當再次執行時根據保存的執行現場信息恢復執行現場。

線程上下文切換時機有:當前線程的CPU時間片使用完處于就緒狀態時,當前線程被其他線程中斷時。

主站蜘蛛池模板: 德清县| 朝阳县| 侯马市| 孟津县| 舞阳县| 鄂尔多斯市| 大化| 云阳县| 临沂市| 宜宾县| 和林格尔县| 广东省| 改则县| 历史| 封开县| 文安县| 舞钢市| 怀来县| 项城市| 军事| 玉树县| 黑水县| 额敏县| 抚远县| 象州县| 大连市| 汉阴县| 永宁县| 霍城县| 广西| 区。| 九龙城区| 南充市| 木里| 浦北县| 临海市| 河曲县| 温宿县| 杭州市| 隆化县| 察哈|