回覆列表
  • 1 # 白樺林59057433

    執行緒(英語:thread)是作業系統能夠進行運算排程的最小單位。它被包含在程序之中,是程序中的實際運作單位。一條執行緒指的是程序中一個單一順序的控制流,一個程序中可以併發多個執行緒,每條執行緒並行執行不同的任務。

    在Unix System V及SunOS中也被稱為輕量程序(lightweight processes),但輕量程序更多指核心執行緒(kernel thread),而把使用者執行緒(user thread)稱為執行緒。

    一個程序可以有很多執行緒,每條執行緒並行執行不同的任務。

    在多核或多CPU,或支援Hyper-threading的CPU上使用多執行緒程式設計的好處是顯而易見,即提高了程式的執行吞吐率。

    在單CPU單核的計算機上,使用多執行緒技術,也可以把程序中負責I/O處理、人機互動而常被阻塞的部分與密集計算的部分分開來執行,編寫專門的workhorse執行緒執行密集計算,從而提高了程式的執行效率。

    擴充套件資料:

    執行緒與程序的區別可以歸納為以下4點:

    1)地址空間和其它資源(如開啟檔案):程序間相互獨立,同一程序的各執行緒間共享。某程序內的執行緒在其它程序不可見。

    2)通訊:程序間通訊IPC,執行緒間可以直接讀寫程序資料段(如全域性變數)來進行通訊——需要程序同步和互斥手段的輔助,以保證資料的一致性。

    3)排程和切換:執行緒上下文切換比程序上下文切換要快得多。

    4)在多執行緒OS中,程序不是一個可執行的實體。

  • 中秋節和大豐收的關聯?
  • 關於onenote不能使用的問題?