久久精品人人爽,华人av在线,亚洲性视频网站,欧美专区一二三

linux中線程是什么意思

152次閱讀
沒有評論

共計 1354 個字符,預計需要花費 4 分鐘才能閱讀完成。

這篇文章主要為大家展示了“linux 中線程是什么意思”,內容簡而易懂,條理清晰,希望能夠幫助大家解決疑惑,下面讓丸趣 TV 小編帶領大家一起研究并學習一下“linux 中線程是什么意思”這篇文章吧。

在 linux 中,線程(thread)指的是程序內部的一個執行路線,即一個進程內部的控制序列,一切進程至少都有一個執行線程。線程是程序執行的最小單位,線程共享進程數據,但也有自己的一部分數據。

本教程操作環境:linux5.9.8 系統、Dell G3 電腦。

Linux 線程的概念

什么是線程?

在一個程序里的一個執行路線就叫做線程(thread)。更準確的定義是:線程是“一個進程內部的控制序列”。

一切進程至少都有一個執行線程。

進程與線程

進程是資源分配與競爭的基本單位

線程是程序執行的最小單位

線程共享進程數據,但也有自己的一部分數據

線程 ID

一組寄存器:IP,PSW,堆棧指針

errno

信號狀態

優先級

linux 中線程是什么意思

fork 和創建新線程的區別

當一個進程執行一個 fork 調用的時候,會創建出進程的一個新拷貝,新進程將擁有它自己的變量和它自己的 PID。這個新進程的運行時間是獨立的,它在執行時幾乎完全獨立于創建它的進程。

在進程里面創建一個新線程的時候,新的執行進程會擁有自己的堆棧(因此也就有自己的局部變量),但要與他的創建者共享全局變量、文件描述符、信號處理器和當前工作目錄狀態。

線程的優點

創建一個新線程的代價要比創建一個新進程小得多

與進程之間的切換相比,線程之間的切換需要操作系統做的工作少得多

線程占用的資源要比進程少得多

能充分利用多處理器的可并行數量

在等待慢速 I / O 操作結束的同時,程序可執行其他的計算任務

計算密集型應用,為了能在多處理器系統上運行,將計算分解到多個線程中實現

I/ O 密集型應用,為了提高系統,將 I / O 操作重疊。線程可以同時等待不同的 I / O 操作

線程的缺點

性能損失

一個很少被外部事件阻塞的計算密集型線程往往無法與其他線程共享同一個處理器。如果計算密集型線程的數量比可用的處理器多,那么可能會有較大的性能損失,這里的性能損失指的是增加了額外的同步和調度開銷,而可用的資源不變。

健壯性降低

編寫多線程需要更全面更深入的考慮,在一個多線程程序里,因時間分配上的細微偏差或者因共享了不該共享的變量而造成不良的可能性是很大的,換句話說線程之間是缺乏保護的。

缺乏訪問控制

進程是訪問控制的基本粒度,在一個線程中調用某些 OS 函數會對整個進程造成影響。

編程難度提高

編寫與調試一個多線程比單線程程序困難得多

線程調度競爭范圍

操作系統提供了各個模型,用來調度應用程序創建的線程。這些模型時間的主要不同是:在競爭系統資源(特別是 CPU 時間)時,線程調度競爭范圍(thread-scheduling contention scope)不一樣

進程競爭范圍(Process contention scope):各個線程在同一個進程競爭“被調度的 CPU 時間”(但不直接和其他進程中的線程競爭)。

系統競爭范圍(System contention scope):線程直接和”系統范圍“內的其他線程競爭。

以上是“linux 中線程是什么意思”這篇文章的所有內容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內容對大家有所幫助,如果還想學習更多知識,歡迎關注丸趣 TV 行業資訊頻道!

正文完
 
丸趣
版權聲明:本站原創文章,由 丸趣 2023-08-25發表,共計1354字。
轉載說明:除特殊說明外本站除技術相關以外文章皆由網絡搜集發布,轉載請注明出處。
評論(沒有評論)
主站蜘蛛池模板: 那坡县| 北川| 婺源县| 武夷山市| 盘锦市| 黄浦区| 阳朔县| 三明市| 伊宁市| 夏邑县| 河西区| 洪湖市| 北安市| 岳普湖县| 兴国县| 阿拉善盟| 海丰县| 丘北县| 昔阳县| 慈利县| 屯门区| 保德县| 余姚市| 观塘区| 都兰县| 富民县| 周至县| 思南县| 成武县| 达孜县| 临武县| 阿拉善右旗| 交城县| 安西县| 孝感市| 唐山市| 栖霞市| 富蕴县| 杭锦后旗| 韶关市| 太谷县|