您好,登錄后才能下訂單哦!
這篇文章主要介紹“java公平鎖與非公平鎖的區(qū)別”,在日常操作中,相信很多人在java公平鎖與非公平鎖的區(qū)別問題上存在疑惑,小編查閱了各式資料,整理出簡單好用的操作方法,希望對大家解答”java公平鎖與非公平鎖的區(qū)別”的疑惑有所幫助!接下來,請跟著小編一起來學(xué)習(xí)吧!
公平鎖:表示線程獲取鎖的順序是按照線程啟動順序來獲取的,即先來先得先進先出。
非公平鎖:表示獲取鎖是隨機獲得的,先啟動的也不能保證一定先獲得鎖。
下面我們用兩個例子來演示一下公平鎖與非公平鎖。
公平鎖
我們看輸出線程的運行順序和線程獲取鎖的順序是一致的。這就是公平鎖的特征,先到先得。下面我們看一下非公平鎖。
非公平鎖
我們只需要將測試類中的Userinfo對象的參數(shù)為true改成false即可。
我們看線程獲取鎖的順序和線程的執(zhí)行順序沒有什么規(guī)律,這就是非公平鎖,不能保證,先執(zhí)行的線程一定能夠先獲得到鎖。
公平鎖與非公平鎖的區(qū)別:
公平鎖的性能要比非公平鎖的性能要低
ReentrantLock類默認的構(gòu)造參數(shù)為false也就是默認是非公平鎖
到此,關(guān)于“java公平鎖與非公平鎖的區(qū)別”的學(xué)習(xí)就結(jié)束了,希望能夠解決大家的疑惑。理論與實踐的搭配能更好的幫助大家學(xué)習(xí),快去試試吧!若想繼續(xù)學(xué)習(xí)更多相關(guān)知識,請繼續(xù)關(guān)注億速云網(wǎng)站,小編會繼續(xù)努力為大家?guī)砀鄬嵱玫奈恼拢?/p>
免責聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。