多執行緒跟多程序區別

2022-06-02 06:42:05 字數 540 閱讀 7300

如果一台計算機有多個cpu,情況就不同了,如果程序數小於cpu數,則不同的程序可以分配給不同的cpu來執行,這樣,多個程序就是真正同時執行的,這便是並行。但如果程序數大於cpu數,則仍然需要使用併發技術。

在windows中,進行cpu分配是以執行緒為單位的,乙個程序可能由多個執行緒組成,這時情況更加複雜,但簡單地說,有如下關係:

匯流排程數<= cpu數量:並行執行

匯流排程數》 cpu數量:併發執行

並行執行的效率顯然高於併發執行,所以在多cpu的計算機中,多工的效率比較高。但是,如果在多cpu計算機中只執行乙個程序(執行緒),就不能發揮多cpu的優勢。

這裡涉及到多工作業系統的問題,多工作業系統(如windows)的基本原理是:作業系統將cpu的時間片分配給多個執行緒,每個執行緒在作業系統指定的時間片內完成(注意,這裡的多個執行緒是分屬於不同程序的).作業系統不斷的從乙個執行緒的執行切換到另乙個執行緒的執行,如此往復,巨集觀上看來,就好像是多個執行緒在一起執行.

由於這多個執行緒分屬於不同的程序,因此在我們看來,就好像是多個程序在同時執行,這樣就實現了多工.whoops,真繞口.

GDB多執行緒除錯

一直對gdb多執行緒除錯接觸不多,最近因為工作有了一些接觸,簡單作點記錄吧。先介紹一下gdb多執行緒除錯的基本命令。info threads 顯示當前可除錯的所有執行緒,每個執行緒會有乙個gdb為其分配的id,後面操作執行緒的時候會用到這個id。前面有 的是當前除錯的執行緒。thread id 切換...

實驗6多執行緒

一 實驗名稱和性質 二 實驗目的 1.理解執行緒概念 了解執行緒的狀態和生命週期 2.學習繼承thread類來建立執行緒 3.理解執行緒互斥與同步的含義 掌握synchrnized同步方法。三 實驗內容 1 設計乙個包含多執行緒執行的程式,在主程式中依次建立3個執行緒,然後按順序啟動這3個執行緒,每...

多執行緒程式設計練習

實驗五 多執行緒程式設計練習 一 課堂範例的驗證 二 打字遊戲 三 實現書本上128頁上的練習6,7,8 至少3者選1 6.實現多執行緒互斥的方法 lock monit mutex和semaphores 1 lock關鍵字 將某語句塊標記為臨界區,確保該執行緒位於臨界區時,另乙個執行緒不得進入該臨界...