91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

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

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

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

环江| 句容市| 喜德县| 象州县| 衡南县| 顺昌县| 西和县| 辉县市| 天津市| 广东省| 深水埗区| 文昌市| 固阳县| 扶沟县| 卢龙县| 郁南县| 合水县| 安国市| 丽水市| 宁津县| 依兰县| 扶余县| 金乡县| 商城县| 葫芦岛市| 肇源县| 福清市| 轮台县| 重庆市| 桐庐县| 阿克苏市| 马龙县| 四子王旗| 曲靖市| 扶余县| 运城市| 光山县| 独山县| 喀什市| 沭阳县| 彭泽县|