線程

線程是cpu使用的基本單元,它由線程id,程序計數器,寄存器集合和棧組成,它與屬于同一進程的其他線程共享代碼段,數據段和其他操作系統資源。

傳統重量級的進程只有單個控制線程,如果進程有多個控制線程,那么它能同時做多個任務。

運行在現代桌面pc上的許多軟件包都是多線程的,一個應用程序通常是作為一個具有多個控制線程的獨立進程實現的,例如,網頁瀏覽器可能 有一個線程用于顯示圖像和文本,另一個線程用于從網絡接收數據。

進程創建很消耗時間和資源

多線程編程有如下4個優點 :

  1. 響應度高:如果 對一個交互程序采用多線程,那么即使其部分阻塞或執行較冗長的操作,該程序仍能繼續執行,從而增加了對用戶的響應程度,例如,多線程Web瀏覽器在用一個線程裝入圖像時,能通過另一個線程與用戶交互。
  2. 資源共享:線程默認共享它們所屬進程的內存和資源,代碼和數據共享的優點是它能允許一個應用程序在同一地址空間有多個不同的活動線程。
  3. 經濟:進程創建所需要的內存和資源的分配比較昂貴,由于線程能共享它們所屬進程的資源,所以創建和切換線程會更為經濟,
  4. 多處理器體系結構的利用: 多線程的優點之一是能充分使用多處理器體系結構,以便每個進程能并行運行在不同的處理器上,不管有多少CPU,單線程進程只能運行在一個CPU上,在多CPU上使用多線程加強了并發功能。

小結

線程是進程內的控制流,多線程進程在同一地址空間內包含多個不同的控制流,多線程的優點包括對用戶響應的改進、進程內的資源共享、經濟和利用多處理器體系結構的能力。

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容

  • 又來到了一個老生常談的問題,應用層軟件開發的程序員要不要了解和深入學習操作系統呢? 今天就這個問題開始,來談談操...
    tangsl閱讀 4,172評論 0 23
  • Object C中創建線程的方法是什么?如果在主線程中執行代碼,方法是什么?如果想延時執行代碼、方法又是什么? 1...
    AlanGe閱讀 1,793評論 0 17
  • 進程 1:進程是指在系統中正在運行的一個應用程序,進程是程序在計算機上的一次執行活動。 2:每個進程之間是相互獨立...
    沒有夢想_何必遠方閱讀 881評論 0 3
  • 線程、進程 1.iOS中的多線程操作、多線程方式? 2.多線程的優點和缺點分別是什么? 答:優點:1、將耗時較長的...
    丶逐漸閱讀 1,410評論 0 8
  • 小時候常聽母親說:十分聰明用七分,留下三分給子孫。 今看潮汐漲退,月有盈虧,輪回更替,亙古不...
    簡式微閱讀 550評論 5 6