!那么,如何避免鎖的性能下降呢?
創(chuàng)新互聯(lián)建站是一家專業(yè)提供合作企業(yè)網(wǎng)站建設(shè),專注與網(wǎng)站制作、成都做網(wǎng)站、H5網(wǎng)站設(shè)計、小程序制作等業(yè)務(wù)。10年已為合作眾多企業(yè)、政府機構(gòu)等服務(wù)。創(chuàng)新互聯(lián)專業(yè)的建站公司優(yōu)惠進行中。1、從業(yè)務(wù)上避免大量鎖結(jié)構(gòu)
!2.使用ThreadLocal,可以保證每個線程中的數(shù)據(jù)不會互相污染
!3.如果讀多寫少,請使用讀寫鎖
!4.自旋鎖將挑戰(zhàn)CPU,盡管它是一個線程時間很少的鎖
!5.鎖的粒度應(yīng)該盡可能?。嚎梢栽诜椒ㄖ械逆i不應(yīng)該占用整個方法
自旋鎖鎖)
自旋鎖有點類似于互斥鎖,只是自旋鎖不會導(dǎo)致調(diào)用者睡眠。如果一個自旋鎖被另一個執(zhí)行單元持有,調(diào)用者總是在那里循環(huán),看它是否被持有
自旋鎖的持有者是否已經(jīng)釋放了鎖,因此得名“自旋”。它的功能是解決資源的互斥使用問題。由于自旋鎖不會導(dǎo)致調(diào)用者睡眠,所以自旋鎖的效率比互斥鎖高很多。雖然它的效率高于互斥鎖,但它也有一些缺點:1。自旋鎖總是占用CPU。它運行所有的時間-自旋沒有得到鎖,所以它占用CPU。如果不能在短時間內(nèi)獲得鎖,無疑會降低CPU效率。
2.使用自旋鎖時,可能會導(dǎo)致死鎖。遞歸調(diào)用時,可能導(dǎo)致死鎖。調(diào)用其他一些函數(shù)也可能導(dǎo)致死鎖,例如copyuutouuser()、copyufromuuser()、kmalloc()等,因此使用自旋鎖要謹(jǐn)慎。只有當(dāng)內(nèi)核是搶占式或SMP時,才真正需要自旋鎖。在單CPU非搶占式內(nèi)核中,自旋鎖的操作為空。旋轉(zhuǎn)鎖適用于鎖用戶在短時間內(nèi)保持鎖。
互斥:線程將切換上下文,搶占CPU并將信號從休眠發(fā)送到運行。
自旋鎖:線程總是在運行(lock>unlock),死循環(huán)檢測鎖標(biāo)志位,機制并不復(fù)雜。
互斥鎖是一種睡眠等待鎖。例如,在雙核機器上,有兩個線程(線程a和線程b),分別在core0和
core1上運行。假設(shè)線程a希望通過pthreadmutexLock操作來獲得關(guān)鍵區(qū)域的鎖。此時,鎖被線程B持有,那么線程a將被阻塞
您好,我很高興回答您的問題。
如果你是某個單位的公職人員,你的親戚朋友經(jīng)常來找你打聽單位的內(nèi)部事務(wù)。如果你有什么事需要你幫忙,你應(yīng)該怎么處理?][真題]愛狗協(xié)會人士反映,最近他們用200條狗堵了一輛車,網(wǎng)上批評劉胡蘭、邱少云、瑯琊山五杰等中國抗日英雄的言論很多。你覺得這個怎么樣?]【真題】近年來,釋放積德的行為層出不窮,但最近有人放生老鼠。你怎么認(rèn)為?
面試題還有很多其他意思,小編不會一一列出,如果你有興趣,可以去sd.offcn.com網(wǎng)站學(xué)習(xí)。
文章名稱:如何提升效率多線程編程的時候,使用無鎖結(jié)構(gòu)會不會比有鎖結(jié)構(gòu)更加快?-創(chuàng)新互聯(lián)
分享URL:http://www.rwnh.cn/article40/doeeho.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站改版、移動網(wǎng)站建設(shè)、微信小程序、品牌網(wǎng)站制作、企業(yè)建站、定制開發(fā)
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)
猜你還喜歡下面的內(nèi)容