进程丶线程丶CPU关系简述
本文簡單闡述了進程與線程的關系,為了便于理解,本文也將簡述CPU的工作原理。
進程是計算機中的程序關于某數據集合上的一次運行活動,是系統進行資源分配和調度的基本單位,是操作系統結構的基礎。或者說進程是具有一定獨立功能的程序關于某個數據集合上的一次運行活動,進程是系統進行資源分配和調度的一個獨立單位。
線程則是進程的一個實體,是CPU調度和分派的基本單位,它是比進程更小的能獨立運行的基本單位。
?
進程和線程的關系:
(1)一個線程只能屬于一個進程,而一個進程可以有多個線程,但至少有一個線程。
(2)資源分配給進程,同一進程的所有線程共享該進程的所有資源。
(3)處理機分給線程,即真正在處理機上運行的是線程。?
(4)線程在執行過程中,需要協作同步。不同進程的線程間要利用消息通信的辦法實現同步。
?
打開你的任務管理器就能看到進程一欄。如下圖:
?
程序、線程、進程的樹形關系圖如下:
?
?
操作系統的設計,因此可以歸結為三點:
(1)以多進程形式,允許多個任務同時運行;
(2)以多線程形式,允許單個任務分成不同的部分運行;
(3)提供協調機制,一方面防止進程之間和線程之間產生沖突,另一方面允許進程之間和線程之間共享資源。
?
例如我們在玩格斗游戲程序的時候,玩家1出拳時,玩家2格擋,這兩個動作是同時發生的,所以此時涉及到了多線程,所以游戲進程要至少有兩個線程,分別為出招和格擋。比如我們用QQ聊天,同時開著QQ音樂,此時大家感覺QQ聊天和QQ音樂是同時進行的,但是CPU在同一時間只能處理一件事情。
? ??我想大家小的時候都應該看過或者很喜歡看一種漫畫書,當你快速的翻閱那本書的時候,書上的人物好像動起來了一樣,就是所謂的逐幀動畫,CPU的處理事件的原理與其類似。
? ??當你運行QQ聊天和QQ音樂的時候,CPU的工作就是不斷的切換進程,如果每秒切換6次,你一定會覺得卡,如果切換的足夠快,你將會感覺是同時在運行QQ音樂和QQ聊天。
?
結論:
(1)線程是進程的一部分
(2)CPU調度的是線程
(3)系統為進程分配資源,不對線程分配資源
?
原文地址:http://blog.csdn.net/u013322876/article/details/50595886
?
轉載于:https://www.cnblogs.com/copperhaze/p/6003357.html
總結
以上是生活随笔為你收集整理的进程丶线程丶CPU关系简述的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Nginx基础知识之————日志管理
- 下一篇: 廖雪峰js教程笔记9 json