這篇文章主要介紹“java公平鎖與非公平鎖的區(qū)別”,在日常操作中,相信很多人在java公平鎖與非公平鎖的區(qū)別問(wèn)題上存在疑惑,小編查閱了各式資料,整理出簡(jiǎn)單好用的操作方法,希望對(duì)大家解答”java公平鎖與非公平鎖的區(qū)別”的疑惑有所幫助!接下來(lái),請(qǐng)跟著小編一起來(lái)學(xué)習(xí)吧!
創(chuàng)新互聯(lián)公司主要從事網(wǎng)站設(shè)計(jì)制作、成都網(wǎng)站設(shè)計(jì)、網(wǎng)頁(yè)設(shè)計(jì)、企業(yè)做網(wǎng)站、公司建網(wǎng)站等業(yè)務(wù)。立足成都服務(wù)古塔,10年網(wǎng)站建設(shè)經(jīng)驗(yàn),價(jià)格優(yōu)惠、服務(wù)專(zhuān)業(yè),歡迎來(lái)電咨詢(xún)建站服務(wù):028-86922220
公平鎖:表示線(xiàn)程獲取鎖的順序是按照線(xiàn)程啟動(dòng)順序來(lái)獲取的,即先來(lái)先得先進(jìn)先出。
非公平鎖:表示獲取鎖是隨機(jī)獲得的,先啟動(dòng)的也不能保證一定先獲得鎖。
下面我們用兩個(gè)例子來(lái)演示一下公平鎖與非公平鎖。
公平鎖
我們看輸出線(xiàn)程的運(yùn)行順序和線(xiàn)程獲取鎖的順序是一致的。這就是公平鎖的特征,先到先得。下面我們看一下非公平鎖。
非公平鎖
我們只需要將測(cè)試類(lèi)中的Userinfo對(duì)象的參數(shù)為true改成false即可。
我們看線(xiàn)程獲取鎖的順序和線(xiàn)程的執(zhí)行順序沒(méi)有什么規(guī)律,這就是非公平鎖,不能保證,先執(zhí)行的線(xiàn)程一定能夠先獲得到鎖。
公平鎖與非公平鎖的區(qū)別:
公平鎖的性能要比非公平鎖的性能要低
ReentrantLock類(lèi)默認(rèn)的構(gòu)造參數(shù)為false也就是默認(rèn)是非公平鎖
到此,關(guān)于“java公平鎖與非公平鎖的區(qū)別”的學(xué)習(xí)就結(jié)束了,希望能夠解決大家的疑惑。理論與實(shí)踐的搭配能更好的幫助大家學(xué)習(xí),快去試試吧!若想繼續(xù)學(xué)習(xí)更多相關(guān)知識(shí),請(qǐng)繼續(xù)關(guān)注創(chuàng)新互聯(lián)網(wǎng)站,小編會(huì)繼續(xù)努力為大家?guī)?lái)更多實(shí)用的文章!