認識多工、多程序、單執行緒、多執行緒 - ㄓㄤㄑㄧㄤ -
現在的作業系統都是多工作業系統,每個執行的任務就是作業系統所做的一件事情,比如你在聽歌的同時還在用msn和好友聊天。聽歌和聊天就是兩個任務,這個兩個任務是「同時」進行的。
乙個任務一般對應乙個程序,也可能包含好幾個程序。
比如執行的msn就對應乙個msn的程序,如果你用的是windows系統,你就可以在任務管理器中看到作業系統正在執行的程序資訊。
一般來說,當執行乙個應用程式的時候,就啟動了乙個程序,當然有些會啟動多個程序。
啟動程序的時候,作業系統會為程序分配資源,其中最主要的資源是記憶體空間,因為程式是在記憶體中執行的。在程序中,有些程式流程塊是可以亂序執行的,並且這個**塊可以同時被多次執行。實際上,這樣的**塊就是執行緒體。
執行緒是程序中亂序執行的**流程。
當多個執行緒同時執行的時候,這樣的執行模式成為併發執行。
多執行緒的目的是為了最大限度的利用cpu資源。
對於乙個程序中的多個執行緒來說,多個執行緒共享程序的記憶體塊,當有新的執行緒產生的時候,作業系統不分配新的記憶體,而是讓新執行緒共享原有的程序塊的記憶體。因此,執行緒間的通訊很容易,速度也很快。不同的程序因為處於不同的記憶體塊,因此程序之間的通訊相對困難。
實際上,操作的系統的多程序實現了多工併發執行,程式的多執行緒實現了程序的併發執行。多工、多程序、多執行緒的前提都是要求作業系統提供多工、多程序、多執行緒的支援。
排程的模式有兩種:分時排程和搶占式排程。分時排程是所有執行緒輪流獲得cpu使用權,並平均分配每個執行緒占用cpu的時間;搶占式排程是根據執行緒的優先級別來獲取cpu的使用權。jvm的執行緒排程模式採用了搶占式模式。
程序與執行緒的乙個簡單解釋 - 阮一峰的網路日誌
作業系統的設計,因此可以歸結為三點:
(1)以多程序形式,允許多個任務同時執行;
(2)以多執行緒形式,允許單個任務分成不同的部分執行;
(3)提供協調機制,一方面防止程序之間和執行緒之間產生衝突,另一方面允許程序之間和執行緒之間共享資源。
多執行緒學習 任務,程序,執行緒
多個任務都在做,其實本質上我們的大腦在同一時間依舊只做了一件事情。程式是指令和資料的有序集合,其本身沒有任何執行的含義,是乙個靜態的概念。通常在乙個程序中可以包含若干個執行緒,當然乙個程序至少有乙個執行緒,不然沒有存在的意義。執行緒是cpu排程和執行的單位。執行緒就是獨立的執行路徑 在程式執行時,即...
Linux 程序 任務和執行緒
程序 任務和執行緒 程序在os中是乙個非常關鍵的抽象概念。在os中虛擬cpu稱為執行執行緒,簡稱為執行緒。用於建立和管理多執行執行緒的實用工具通常包含在乙個pthread庫。因為該庫中介面是按照posix標準定義的,所以以p開頭。在unix os中,單執行緒程序和多執行緒程序模型如下 linux中,...
多工原理,執行緒,程序
一.現代作業系統 windows,mac os x,linux,unix等 都支援 多工 二.單任務現象 from time import sleep defrun while true print sunck is a nice man sleep 1.2 if name main while t...