欧美一区二区三区老妇人-欧美做爰猛烈大尺度电-99久久夜色精品国产亚洲a-亚洲福利视频一区二区

線程安全與可重入函數(shù)的區(qū)別有哪些

這篇文章將為大家詳細(xì)講解有關(guān)線程安全與可重入函數(shù)的區(qū)別有哪些,小編覺得挺實(shí)用的,因此分享給大家做個(gè)參考,希望大家閱讀完這篇文章后可以有所收獲。

成都網(wǎng)站設(shè)計(jì)、網(wǎng)站制作中從網(wǎng)站色彩、結(jié)構(gòu)布局、欄目設(shè)置、關(guān)鍵詞群組等細(xì)微處著手,突出企業(yè)的產(chǎn)品/服務(wù)/品牌,幫助企業(yè)鎖定精準(zhǔn)用戶,提高在線咨詢和轉(zhuǎn)化,使成都網(wǎng)站營銷成為有效果、有回報(bào)的無錫營銷推廣。成都創(chuàng)新互聯(lián)專業(yè)成都網(wǎng)站建設(shè)十余年了,客戶滿意度97.8%,歡迎成都創(chuàng)新互聯(lián)客戶聯(lián)系。

輕量級(jí)進(jìn)程(LWP)是計(jì)算機(jī)操作系統(tǒng)中一種實(shí)現(xiàn)多任務(wù)的方法。

在計(jì)算機(jī)操作系統(tǒng)中,輕量級(jí)進(jìn)程(LWP)是一種實(shí)現(xiàn)多任務(wù)的方法。與普通進(jìn)程相比,LWP與其他進(jìn)程共享所有(或大部分)它的邏輯地址空間和系統(tǒng)資源;與線程相比,LWP有它自己的進(jìn)程標(biāo)識(shí)符,優(yōu)先級(jí),狀態(tài),以及棧和局部存儲(chǔ)區(qū),并和其他進(jìn)程有著父子關(guān)系;這是和類Unix操作系統(tǒng)的系統(tǒng)調(diào)用vfork()生成的進(jìn)程一樣的。另外,線程既可由應(yīng)用程序管理,又可由內(nèi)核管理,而LWP只能由內(nèi)核管理并像普通進(jìn)程一樣被調(diào)度。Linux內(nèi)核是支持LWP的典型例子。

在大多數(shù)系統(tǒng)中,LWP與普通進(jìn)程的區(qū)別也在于它只有一個(gè)最小的執(zhí)行上下文和調(diào)度程序所需的統(tǒng)計(jì)信息,而這也是它之所以被稱為輕量級(jí)的原因。一般來說,一個(gè)進(jìn)程代表程序的一個(gè)實(shí)例,而LWP代表程序的執(zhí)行線程(其實(shí),在內(nèi)核不支持線程的時(shí)候,LWP可以很方便地提供線程的實(shí)現(xiàn))。因?yàn)橐粋€(gè)執(zhí)行線程不像進(jìn)程那樣需要那么多狀態(tài)信息,所以LWP也不帶有這樣的信息。

LWP的一個(gè)重要作用是提供了一個(gè)用戶級(jí)線程實(shí)現(xiàn)的中間系統(tǒng)。LWP可以通過系統(tǒng)調(diào)用獲得內(nèi)核提供的服務(wù),因此,當(dāng)一個(gè)用戶級(jí)線程運(yùn)行時(shí),只需要將它連接到一個(gè)LWP上便可以具有內(nèi)核支持線程的所有屬性。

各線程還共享以下進(jìn)程資源和環(huán)境:
1. 文件描述符表
2. 每種信號(hào)的處理方式(SIG_IGN、 SIG_DFL或者自定義的信號(hào)處理函數(shù))
3. 當(dāng)前工作目錄
4. 用戶id和組id

但有些資源是每個(gè)線程各有一份的:
1. 線程id
2. 上下文,包括各種寄存器的值、程序計(jì)數(shù)器和棧指針
3. ??臻g
4. errno變量
5. 信號(hào)屏蔽字
6. 調(diào)度優(yōu)先級(jí)

進(jìn)程強(qiáng)調(diào)獨(dú)占,而線程強(qiáng)調(diào)共享。線程私有最重要的是:硬件上下文,棧幀。

多個(gè)線程看見公共資源,如果不保護(hù),則會(huì)發(fā)生異常,線程安全(一個(gè)線程修改會(huì)影響另一個(gè)線程執(zhí)行邏輯異常)。

產(chǎn)生線程安全本質(zhì):線程共享資源,造成一定影響。

同一個(gè)進(jìn)程內(nèi)部另一個(gè)執(zhí)行流:信號(hào)處理

線程安全:

       線程安全函數(shù):在C語言中局部變量是在棧中分配的,任何未使用靜態(tài)數(shù)據(jù)或其他共享資源的函數(shù)都是線程安全的。而使用全局變量的函數(shù)是非線程安全的。
       使用靜態(tài)數(shù)據(jù)或其他共享資源的函數(shù),必須通過加鎖的方式來使函數(shù)實(shí)現(xiàn)線程安全。

       線程安全的:
                   如果一個(gè)函數(shù)在同一時(shí)刻可以被多個(gè)線程安全地調(diào)用,就稱該函數(shù)是線程安全的。
                   線程安全函數(shù)解決多個(gè)線程調(diào)用函數(shù)時(shí)訪問共享資源的沖突問題。

可重入:

  1. 函數(shù)被不同的控制流程調(diào)用,有可能在第一次調(diào)用還沒返回時(shí)就再次進(jìn)入該函 數(shù),這稱為重入。

  2. 訪問時(shí)有可能因?yàn)橹厝攵斐慑e(cuò)亂,像這樣的函數(shù)稱為 不可重入函數(shù),反之,如果一個(gè)函數(shù)只訪問自己的局部變量或參數(shù),則稱為可重入函數(shù)。

3..可重入函數(shù)特點(diǎn): 函數(shù)可以由多于一個(gè)線程并發(fā)使用,而不必?fù)?dān)心數(shù)據(jù)錯(cuò)誤??芍厝牒瘮?shù)可以在任意時(shí)刻被中斷,稍后再繼續(xù)運(yùn)行,不會(huì)丟失數(shù)據(jù)??芍?入性解決函數(shù)運(yùn)行結(jié)果的確定性和可重復(fù)性。 所謂可重入函數(shù)是指一個(gè)可以被多個(gè)任務(wù)調(diào)用的過程,任務(wù)在調(diào)用時(shí)不必?fù)?dān)心數(shù)據(jù)是否會(huì)出錯(cuò)。

可重入函數(shù)編寫規(guī)范為:

1、不在函數(shù)內(nèi)部使用靜態(tài)或全局?jǐn)?shù)據(jù) 
2、不返回靜態(tài)或全局?jǐn)?shù)據(jù),所有數(shù)據(jù)都由函數(shù)的調(diào)用者提供。 
3、使用本地?cái)?shù)據(jù),或者通過制作全局?jǐn)?shù)據(jù)的本地拷貝來保護(hù)全局?jǐn)?shù)據(jù)。
4、如果必須訪問全局變量,利用互斥機(jī)制來保護(hù)全局變量。
5、不調(diào)用不可重入函數(shù)。

兩者之間的關(guān)系:
1、一個(gè)函數(shù)對(duì)于多個(gè)線程是可重入的,則這個(gè)函數(shù)是線程安全的。
2、一個(gè)函數(shù)是線程安全的,但并不一定是可重入的。【使用互斥鎖實(shí)現(xiàn)的線程安全】
3、可重入性要強(qiáng)于線程安全性。

注:可重入函數(shù)是指函數(shù)內(nèi)部沒有使用共享變量。可重入函數(shù)是線程安全函數(shù)的一個(gè)真子集。

C語言:可重入函數(shù)是說當(dāng)一個(gè)函數(shù)被不同的線程同時(shí)訪問的時(shí)候,每一個(gè)調(diào)用都獨(dú)自使用自己的一份數(shù)據(jù),多次調(diào)用之間不存在數(shù)據(jù)共享。所以說C語言可重入的函數(shù)一定是線程安全的,因?yàn)楦揪筒淮嬖诙鄠€(gè)線程共享一份數(shù)據(jù)問題,就不會(huì)發(fā)生訪問沖突??芍厝牒瘮?shù)的要求是函數(shù)不訪問全局或靜態(tài)變量。

線程安全如果多個(gè)線程對(duì)同一個(gè)函數(shù)的多次調(diào)用之間存在共享數(shù)據(jù),所有對(duì)共享數(shù)據(jù)的訪問都必須是序列化的,每個(gè)線程按先來后到排隊(duì)訪問,也就是不存在同時(shí)訪問。

C++中:類的成員函數(shù)可重入是說:類的成員函數(shù)在被多個(gè)線程在不同實(shí)例里面訪問(每個(gè)線程一個(gè)實(shí)例)時(shí),不存在共享數(shù)據(jù),也不會(huì)有數(shù)據(jù)沖突。

類的可重入表示類的所有成員函數(shù)都是可重入的。
類的線程安全是說:類的同一個(gè)實(shí)例被多個(gè)線程訪問的時(shí)候,對(duì)數(shù)據(jù)的操縱是序列化的,不會(huì)有訪問沖突。

兩者之間的區(qū)別:

1.可重入概念只和函數(shù)訪問的變量類型有關(guān),和是否使用鎖沒有關(guān)系。
2.而線程安全和鎖的使用關(guān)系密切,很多時(shí)候線程安全是靠鎖來保證的。

關(guān)于“線程安全與可重入函數(shù)的區(qū)別有哪些”這篇文章就分享到這里了,希望以上內(nèi)容可以對(duì)大家有一定的幫助,使各位可以學(xué)到更多知識(shí),如果覺得文章不錯(cuò),請(qǐng)把它分享出去讓更多的人看到。

分享文章:線程安全與可重入函數(shù)的區(qū)別有哪些
分享地址:http://chinadenli.net/article0/joicoo.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供企業(yè)建站、網(wǎng)站內(nèi)鏈服務(wù)器托管、App設(shè)計(jì)域名注冊(cè)、全網(wǎng)營銷推廣

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)

h5響應(yīng)式網(wǎng)站建設(shè)
国产精品亚洲综合天堂夜夜| 国产精品免费视频视频| 字幕日本欧美一区二区| 尹人大香蕉一级片免费看| 欧美成人精品一区二区久久| 日韩精品亚洲精品国产精品| 色综合视频一区二区观看| 乱女午夜精品一区二区三区| 国产欧美亚洲精品自拍| 日韩欧美国产精品中文字幕| 精品一区二区三区免费看| 一级欧美一级欧美在线播| 色婷婷亚洲精品综合网| 亚洲综合激情另类专区老铁性| 99视频精品免费视频播放| 国产成人在线一区二区三区| 欧美日韩乱码一区二区三区| 国产精品国三级国产专不卡| 亚洲熟女国产熟女二区三区| 日本在线 一区 二区| 91亚洲国产日韩在线| 日本理论片午夜在线观看| 国产精品午夜小视频观看| 久草热视频这里只有精品| 黄男女激情一区二区三区 | 免费观看成人免费视频| 成人精品日韩专区在线观看| 高清不卡一卡二卡区在线| 亚洲伊人久久精品国产| 国产二级一级内射视频播放| 中文字幕无线码一区欧美| 伊人欧美一区二区三区| 日韩精品在线观看完整版| 五月天丁香亚洲综合网| 日韩精品一区二区三区含羞含羞草| 亚洲精品成人午夜久久| 日韩人妻欧美一区二区久久| 免费在线播放一区二区| 中文字幕亚洲精品乱码加勒比| 久久人妻人人澡人人妻| 少妇人妻中出中文字幕|