這是毫無疑問的,因?yàn)榫€程鎖定是資源密集型的
!那么,如何避免鎖的性能下降呢?
1、從業(yè)務(wù)上避免大量鎖結(jié)構(gòu)
!2.使用ThreadLocal,可以保證每個(gè)線程中的數(shù)據(jù)不會(huì)互相污染
!3.如果讀多寫少,請(qǐng)使用讀寫鎖
!4.自旋鎖將挑戰(zhàn)CPU,盡管它是一個(gè)線程時(shí)間很少的鎖
!5.鎖的粒度應(yīng)該盡可能小:如果鎖可以在方法中,不要占用整個(gè)方法
你好,很高興回答你的問題。
如果你是某個(gè)單位的公職人員,你的親戚朋友經(jīng)常來找你打聽單位的內(nèi)部事務(wù)。如果你有什么事需要你幫忙,你應(yīng)該怎么處理?][真題]愛狗協(xié)會(huì)人士反映,最近他們用200條狗堵了一輛車,網(wǎng)上批評(píng)劉胡蘭、邱少云、瑯琊山五杰等中國(guó)抗日英雄的言論很多。你覺得這個(gè)怎么樣?]【真題】近年來,釋放積德的行為層出不窮,但最近有人放生老鼠。你怎么認(rèn)為?
面試題還有很多其他意思,小編不會(huì)一一列出,如果你有興趣,可以去sd.offcn.com網(wǎng)站學(xué)習(xí)。
你經(jīng)歷過哪些有意思的面試題目?自旋鎖
自旋鎖類似于互斥鎖,只是自旋鎖不會(huì)導(dǎo)致調(diào)用者睡眠。如果一個(gè)自旋鎖被另一個(gè)執(zhí)行單元持有,調(diào)用者總是在那里循環(huán),看它是否被持有
自旋鎖的持有者是否已經(jīng)釋放了鎖,因此得名“selfspin”。它的功能是解決資源的互斥使用問題。由于自旋鎖不會(huì)導(dǎo)致調(diào)用者睡眠,所以自旋鎖的效率比互斥鎖高很多。雖然它的效率高于互斥鎖,但它也有一些缺點(diǎn):1。自旋鎖總是占用CPU。它運(yùn)行所有的時(shí)間-自旋沒有得到鎖,所以它占用CPU。如果不能在短時(shí)間內(nèi)獲得鎖,無疑會(huì)降低CPU效率。
2.使用自旋鎖時(shí),可能會(huì)導(dǎo)致死鎖。遞歸調(diào)用時(shí),可能導(dǎo)致死鎖。調(diào)用其他一些函數(shù)也可能導(dǎo)致死鎖,例如copyuutouuser()、copyufromuuser()、kmalloc()等,因此使用自旋鎖要謹(jǐn)慎。只有當(dāng)內(nèi)核是搶占式或SMP時(shí),才真正需要自旋鎖。在單CPU非搶占式內(nèi)核中,自旋鎖的操作為空。旋轉(zhuǎn)鎖適用于鎖用戶在短時(shí)間內(nèi)保持鎖。
互斥:線程將切換上下文,搶占CPU并將信號(hào)從休眠發(fā)送到運(yùn)行。
自旋鎖:線程總是在運(yùn)行(lock>unlock),死循環(huán)檢測(cè)鎖標(biāo)志位,機(jī)制并不復(fù)雜。
互斥鎖是一種睡眠等待鎖。例如,在雙核機(jī)器上,有兩個(gè)線程(線程a和線程b),分別在core0和
core1上運(yùn)行。假設(shè)線程a希望通過pthreadmutexLock操作來獲得鎖的關(guān)鍵區(qū)域,此時(shí)鎖由線程B持有,那么線程a將被阻塞
本文標(biāo)題:自旋鎖實(shí)現(xiàn)原理spinlock自旋鎖是如何實(shí)現(xiàn)的?-創(chuàng)新互聯(lián)
網(wǎng)站URL:http://chinadenli.net/article36/dechpg.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供外貿(mào)建站、響應(yīng)式網(wǎng)站、網(wǎng)站設(shè)計(jì)、網(wǎng)站排名、關(guān)鍵詞優(yōu)化、電子商務(wù)
聲明:本網(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)
猜你還喜歡下面的內(nèi)容