日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

10、线程文化

發布時間:2025/5/22 编程问答 22 豆豆
生活随笔 收集整理的這篇文章主要介紹了 10、线程文化 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

1、在Linux2.2內核中,并不存在真正意義上的線程。當時Linux中常用的線程pthread實際上是通過進程來模擬的,也就是說Linux中的線程也是通過fork()創建的“輕”進程,并且線程的個數也很有限,最多只能有4096個進程/線程同時運行。

2、Linux2.4內核消除了這個線程個數的限制,并且允許在系統運行中動態地調整進程數上限。當時采用的是LinuxThread線程庫,它對應的線程模型是“一對一”線程模型,也就是一個用戶級線程對應一個內核線程,而線程之間的管理在內核外的函數庫中實現

3、在Linux內核2.6之前的版本中,進程是最主要的處理調度單元,并沒支持內核線程機制。Linux 2.6內核支持clone()系統調用,從而實現共享地址空間的進程機制。因而Linux系統在1996年第一次獲得線程的支持,當時所使用的函數庫被稱為LinuxThread。該函數庫就使用clone()系統調用實現內核級的線程機制,在此前的Linux版本中在用戶層實現POSIX線程庫。

??? 由Red Hat主導的本地化POSIX線程庫(Native POSIX Thread Library,簡稱為NTPL),現在已經成為GNU C函數庫的一部分,同時也成為Linux線程的標準。

4、線程屬性

1)綁定屬性

??? Linux中采用“一對一”的線程機制,也就是一個用戶線程對應一個內核線程。綁定屬性就是指一個用戶線程固定地分配給一個內核線程,因為CPU時間片的調度是面向內核線程(也就是輕量級進程)的,因此具有綁定屬性的線程可以保證在需要的時候總有一個內核線程與之對應。而與之對應的非綁定屬性就是指用戶線程和內核線程的關系不是始終固定的,而是由系統來控制分配的。

2)分離屬性

??? 分離屬性是用來決定一個線程以什么樣的方式來終止自己。在非分離情況下,當一個線程結束時,它所占用的系統資源并沒有被釋放,也就是沒有真正的終止。只有當pthread_join()函數返回時,創建的線程才能釋放自己占用的系統資源。而在分離屬性情況下,一個線程結束時立即釋放它所占有的系統資源。這里要注意的一點是,如果設置一個線程的分離屬性,而這個線程運行又非常快,那么它很可能在pthread_create()函數返回之前就終止了,它終止以后還就可能將該線程號和系統資源移交給其他的線程使用,這可能會引起錯誤。

5、互斥量本質是一把鎖,提供對共享資源的保護訪問。

6、二進制信號量與互斥鎖的區別

1)mutex:誰獲得,誰釋放,而信號量可以由其他線程釋放。

2)mutex初始值為1,而信號量可01

7、線程與輕進程

8、linux中使用進程實現線程,所以新創建的線程和源線程進程號可能不同。

總結

以上是生活随笔為你收集整理的10、线程文化的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。