任務 進程 線程

認識多任務、多進程、單線程、多線程 - ㄓㄤㄑㄧㄤ - 博客園

http://www.cnblogs.com/azhqiang/p/3674728.html


現在的操作系統都是多任務操作系統,每個運行的任務就是操作系統所做的一件事情,比如你在聽歌的同時還在用MSN和好友聊天。聽歌和聊天就是兩個任務,這個兩個任務是“同時”進行的。一個任務一般對應一個進程,也可能包含好幾個進程。比如運行的MSN就對應一個MSN的進程,如果你用的是windows系統,你就可以在任務管理器中看到操作系統正在運行的進程信息。 

一般來說,當運行一個應用程序的時候,就啓動了一個進程,當然有些會啓動多個進程。啓動進程的時候,操作系統會爲進程分配資源,其中最主要的資源是內存空間,因爲程序是在內存中運行的。在進程中,有些程序流程塊是可以亂序執行的,並且這個代碼塊可以同時被多次執行。實際上,這樣的代碼塊就是線程體。線程是進程中亂序執行的代碼流程。當多個線程同時運行的時候,這樣的執行模式成爲併發執行。 多線程的目的是爲了最大限度的利用CPU資源。 

 對於一個進程中的多個線程來說,多個線程共享進程的內存塊,當有新的線程產生的時候,操作系統不分配新的內存,而是讓新線程共享原有的進程塊的內存。因此,線程間的通信很容易,速度也很快。不同的進程因爲處於不同的內存塊,因此進程之間的通信相對困難。 

  實際上,操作的系統的多進程實現了多任務併發執行,程序的多線程實現了進程的併發執行。多任務、多進程、多線程的前提都是要求操作系統提供多任務、多進程、多線程的支持。 

調度的模式有兩種:分時調度和搶佔式調度。分時調度是所有線程輪流獲得CPU使用權,並平均分配每個線程佔用CPU的時間;搶佔式調度是根據線程的優先級別來獲取CPU的使用權。JVM的線程調度模式採用了搶佔式模式。


進程與線程的一個簡單解釋 - 阮一峯的網絡日誌
http://www.ruanyifeng.com/blog/2013/04/processes_and_threads.html

操作系統的設計,因此可以歸結爲三點:

(1)以多進程形式,允許多個任務同時運行;

(2)以多線程形式,允許單個任務分成不同的部分運行;

(3)提供協調機制,一方面防止進程之間和線程之間產生衝突,另一方面允許進程之間和線程之間共享資源。


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章