中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

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

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

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

呼玛县| 大英县| 龙井市| 寿光市| 德昌县| 广州市| 罗山县| 临漳县| 平乐县| 桂东县| 新绛县| 达拉特旗| 高阳县| 宝应县| 克山县| 四子王旗| 青河县| 定结县| 济阳县| 孝义市| 威信县| 泰顺县| 海晏县| 苏尼特左旗| 武穴市| 巴中市| 龙口市| 涪陵区| 永州市| 凤冈县| 新乡县| 民县| 丹阳市| 琼中| 汉寿县| 文登市| 香港| 土默特右旗| 杨浦区| 滦南县| 青神县|