首先你要理解cpu的概念,計算機上的所有操作都是由cpu來執行的,cpu將要執行的操作分為乙個個的任務,這些任務我們就可以理解為程序,而這些任務又分為一些細粒度更小的子任務,這些子任務就稱作執行緒
cpu輪流執行任務的,每乙個任務需要經過以下三個階段:
也就是說,每乙個程序從載入、執行,到切換下乙個程序執行,都會經歷同樣的乙個過程,我們的cpu就是在無時無刻地進行這樣的程序切換操作
而我們又可以把程序分為一些細粒度更小的執行緒,這些執行緒之間也可以來回的切換,就像程序一樣,但是卻不需要載入和儲存上下文的操作,因為這些執行緒都是共享上下文的
執行緒和程序的區別
易於排程。執行緒切換比程序切換要快。虛擬記憶體空間,io裝置等 開銷小。建立執行緒比建立進行要快,所需開銷小。進展用少量資源,如棧和暫存器。提高併發性。程序可以建立多個執行緒來執行統一程式的不同任務。有利於充分發揮多處理器的功能。通過建立多執行緒的程序,每個執行緒在乙個處理器上執行,從而實現了應用程...
執行緒和程序的區別
這個問題我查了不下4次,每次都是突然想到查一下,當時明白,完了又會混淆 首先我們知道 程序 執行緒 執行緒 在乙個程式裡面的多個任務,比如賣票系統,他有退票和賣票的功能,我們就可以給他稱之為執行緒。程序 我們開啟任務管理器可以看到的是我們在系統上執行的程式稱之為執行緒 總之,乙個程式必須有乙個程序,...
執行緒和程序的區別
1.計算機的核心是cpu,它承擔了所有的計算任務。它就像一座工廠,時刻在執行。2.假定工廠的電力有限,一次只能供給乙個車間使用。也就是說,乙個車間開工的時候,其他車間都必須停工。背後的含義就是,單個cpu一次只能執行乙個任務。3.程序就好比工廠的車間,它代表cpu所能處理的單個任務。任一時刻,cpu...