中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

線程的概念和多線程模子

發布時間:2020-07-16 13:29:37 來源:網絡 閱讀:239 作者:yuw2016 欄目:網絡安全

線程的根本概念

引入過程的目標,是為了使多道程序并發履行,以進步資本應用率和零碎吞吐量;而引入線程,則是為了減小程序在并發履行時所支付的時空開支,進步操作零碎的并發功能。
線程最直接的了解就是“輕量級過程”,它是一個根本的CPU履行單位,也是程序履行流的最小單位,由線程ID、程序計數器、存放器聚集和客棧構成。線程是過程中的一個實體,是被零碎自力調劑和分配的根本單元,線程本人不具有零碎資本,只具有一點在運轉中必弗成少的資本,但它可與同屬一個過程的其他線程共享過程所具有的全體資本。一個線程可以創立和撤銷另一個線程,統一過程中的多個線程之間可以并發履行。因為線程之間的互相制約,致使線程在運轉中出現出連續性。線程也有停當、壅塞和運轉三種根本形態。
引入線程后,過程的外延發作了改動,過程只作為除CPU之外零碎資本的分派單位,線程則作為處置機的分派單位。

線程與過程的比擬

1) 調劑。在傳統的操作零碎中,具有資本和自力調劑的根本單元多是過程。在引入線程的操作零碎中,線程是自力調劑的根本單元,過程是資本具有的根本單元。在統一過程中,線程的切換不會惹起過程切換。在分歧過程中停止線程切換,如從一個過程內的線程切換到另一個過程中的線程時,會惹起過程切換。
2) 具有資本。不管是傳統操作零碎照樣設有線程的操作零碎,過程多是具有資本的根本單元,而線程不具有零碎資本(也有一點必弗成少的資本),但線程可以拜訪其從屬過程的零碎資本。
3) 并發性。在引入線程的操作零碎中,不只過程之間可以并發履行,并且多個線程之間也可以并發履行,從而使操作零碎具有更好的并發性,進步了零碎的吞吐量。
4) 零碎開支。因為創立或撤銷過程時,零碎都要為之分派或收受接管資本,如內存空間、 I/O裝備等,因而操作零碎所支付的開支弘遠于創立或撤銷線程時的開支。相似地,在停止過程切換時,觸及以后履行過程CPU情況的保管及新調劑到過程CPU情況的設置,而線程切換時只需保管和設置大批存放器內容,開支很小。此外,因為統一過程內的多個線程共享過程的地址空間,因而,這些線程之間的同步與通訊十分輕易完成,乃至無需操作零碎的干涉。
5) 地址空間和其他資本(如翻開的文件):過程的地址空間之間相互自力,統一過程的各線程間共享過程的資本,某過程內的線程關于其他過程弗成見。
6) 通訊方面:過程間通訊(IPC)需求過程同步和互斥手腕的輔佐,以包管數據的分歧性,而線程間可以直接讀/寫過程數據段(如全局變量)來停止通訊。

線程的屬性

在多線程操作零碎中,把線程作為自力運轉(或調劑)的根本單元,此時的過程,已不再是一個根本的可履行實體。但過程仍具有與履行相干的形態,所謂過程處于“履行”形態,實踐上是指該過程中某線程正在履行。線程的次要屬性如下:

  1. 線程是一個輕型實體,它不具有零碎資本,但每一個線程都應有一個獨一的標識符和一個線程掌握塊,線程掌握塊記載了線程履行的存放器和棧等現場形態。

  2. 分歧的線程可以履行相反的程序,即統一個效勞程序被分歧的用戶挪用時,操作零碎為它們創立成分歧的線程。

  3. 統一過程中的各個線程共享該過程所具有的資本。

  4. 線程是處置機的自力調劑單元,多個線程是可以并發履行的。在單CPU的盤算機零碎中,各線程可瓜代地占用CPU;在多CPU的盤算機零碎中,各線程可同時占用分歧的CPU,若各個CPU同時為一個過程內的各線程效勞則可延長過程的處置工夫。

  5. —個線程被創立后便開端了它的生命周期,直至終止,線程在生命周期內會閱歷壅塞態、停當態和運轉態等各類形態變更。

線程的完成方法

線程的完成可以分為兩類:用戶級線程(User-LevelThread, ULT)和內核級線程(Kemel-LevelThread,  KLT)。內核級線程又稱為內核支撐的線程。
在用戶級線程中,有關線程治理的一切任務都由使用程序完成,內核認識不到線程的存在。使用程序可以經過運用線程庫設計成多線程程序。平日,使用程序從單線程肇端,在該線程中開端運轉,在其運轉的任何時辰,可以經過挪用線程庫中的派生例程創立一個在相反過程中運轉的新線程。圖2-2(a)闡明了用戶級線程的完成方法。
在內核級線程中,線程治理的一切任務由內核完成,使用程序沒有停止線程治理的代碼,只要一個到內核級線程的編程接口。內核為過程及其外部的每一個線程保護上下文信息,調劑也是在內核基于線程架構的根底上完成。圖2-2(b)闡明了內核級線程的完成方法。
在一些零碎中,運用組合方法的多線程完成。線程創立完整在用戶空間中完成,線程的調劑和同步也在使用程序中停止。一個使用程序中的多個用戶級線程被映射到一些(小于或等于用戶級線程的數量)內核級線程上。圖2-2(c)闡明了用戶級與內核級的組合完成方法。

線程的概念和多線程模子
圖2-2用戶級和內核級線程

多線程模子

有些零碎同時支撐用戶線程和內核線程由此發生了分歧的多線程模子,即完成用戶級線程和內核級線程的銜接方法。

1) 多對一模子

將多個用戶級線程映射到一個內核級線程,線程治理在用戶空間完成。
此形式中,用戶級線程對操作零碎弗成見(即通明)。
長處:線程治理是在用戶空間停止的,因此效力比擬高。
缺陷:當一個線程在運用內核效勞時被壅塞,那么全部過程都邑被壅塞;多個線程不克不及并行地運轉在多處置機上。

2) 一對一模子

將每一個用戶級線程映射到一個內核級線程。
長處:當一個線程被壅塞后,許可另一個線程持續履行,所以并發才能較強。
缺陷:每創立一個用戶級線程都需求創立一個內核級線程與其對應,如許創立線程的開支比擬大,會影響到使用程序的功能。

3) 多對多模子

將 n 個用戶級線程映射到 m 個內核級線程上,請求 m <= n。
特色:在多對一模子和一對一模子中取了個折中,克制了多對一模子的并發度不高的缺陷,又克制了一對一模子的一個用戶過程占用太多內核級線程,開支太大的缺陷。又具有多對一模子和一對一模子各自的長處,可謂集兩者之所長。


向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

呼图壁县| 镇江市| 丹巴县| 甘南县| 瓦房店市| 平陆县| 和硕县| 雷州市| 景德镇市| 怀来县| 康马县| 永城市| 马鞍山市| 纳雍县| 南乐县| 白山市| 灵宝市| 会泽县| 板桥市| 安新县| 新沂市| 江山市| 孟州市| 沂源县| 永兴县| 乐陵市| 塔河县| 同江市| 万全县| 澎湖县| 洛隆县| 临颍县| 溧阳市| 景洪市| 宁国市| 阜平县| 洛川县| 连云港市| 航空| 巴东县| 平凉市|