亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

java中鎖的概念是什么

發布時間:2021-04-29 16:58:46 來源:億速云 閱讀:162 作者:Leah 欄目:編程語言

java中鎖的概念是什么?相信很多沒有經驗的人對此束手無策,為此本文總結了問題出現的原因和解決方法,通過這篇文章希望你能解決這個問題。

python有哪些常用庫

python常用的庫:1.requesuts;2.scrapy;3.pillow;4.twisted;5.numpy;6.matplotlib;7.pygama;8.ipyhton等。

一、鎖的概念及作用

鎖主要用來實現資源共享的同步。只有獲取到了鎖才能訪問該同步代碼,否則等待其他線程使用結束釋放鎖。

二、鎖的類型

這里主要針對:synchronize和Lock。

synchronize: 可以放在方法前面;也可以放在代碼塊前面,但需要指定上鎖的對象。通常和wait,notify,notifyAll一塊使用。wait:釋放占有的對象鎖,釋放CPU。 sleep:則是釋放CPU,但是不釋放占有的對象鎖。

notify:喚醒等待隊列中的一個線程,使其獲得鎖進行訪問。

notifyAll:喚醒等待隊列中等待該對象鎖的全部線程,讓其競爭去獲得鎖。

Lock:擁有synchronize相同的語義,但是添加一些其他特性,如中斷鎖等候和定時鎖等候,所以可以使用lock代替synchronize。提供的方法有:

lock():以阻塞式獲取鎖,沒有獲取到一直等待,不會被中斷。

tryLock(): 獲取一下,獲取到就返回true,沒獲取到就返回false。

tryLock(long timeout,TimeUnit unit):獲取到返回true,沒獲取到等待給定的時間,還沒獲取到就返回false。

lockInterruptibly() : 與lock類似,但是沒有獲取鎖會進入到休眠狀態,直到獲得鎖或者當前線程被別的線程中斷。

三、兩者的區別

性能不一致:資源競爭激勵的情況下,lock性能會比synchronize好,競爭不激勵的情況下,synchronize比lock性能好。

鎖機制不一樣:synchronize是在JVM層面實現的,系統會監控鎖的釋放與否。lock是代碼實現的,需要手動釋放,在finally塊中釋放。可以采用非阻塞的方式獲取鎖。

用法不一樣:synchronize可以用在代碼塊上,方法上。lock通過代碼實現,有更精確的線程語義。

看完上述內容,你們掌握java中鎖的概念是什么的方法了嗎?如果還想學到更多技能或想了解更多相關內容,歡迎關注億速云行業資訊頻道,感謝各位的閱讀!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

榆社县| 同仁县| 广灵县| 那坡县| 宁夏| 万山特区| 应城市| 石家庄市| 肇庆市| 盱眙县| 宜春市| 木里| 甘孜县| 百色市| 东阳市| 宣威市| 泽州县| 东山县| 石城县| 彩票| 德江县| 辽中县| 平乡县| 鄂托克旗| 民和| 林口县| 高碑店市| 正镶白旗| 新竹县| 大足县| 兴山县| 句容市| 霸州市| 平塘县| 葫芦岛市| 治多县| 许昌县| 长岭县| 阿图什市| 大渡口区| 耿马|