国产av日韩一区二区三区精品,成人性爱视频在线观看,国产,欧美,日韩,一区,www.成色av久久成人,2222eeee成人天堂

首頁 > Java > Java面試題 > 正文

java面試——鎖

王林
發(fā)布: 2021-01-04 17:32:27
轉(zhuǎn)載
3582人瀏覽過

java面試——鎖

面試題:

你對java中的鎖有所了解么?鎖有哪幾種?它們有什么區(qū)別?你來說一下。

(學習視頻分享:java視頻教程

解答:

立即學習Java免費學習筆記(深入)”;

大致可以分為這幾點:鎖是什么,有什么用,有哪幾種鎖,鎖的區(qū)別。

一:鎖是什么,有什么用?

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

二:有哪幾種鎖?

這里主要針對:synchronize和Lock(因為面試就是問這兩個)。

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

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

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

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

(更多相關面試題推薦:java面試題及答案

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

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

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

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

三:兩者的區(qū)別?

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

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

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

相關推薦:java入門教程

以上就是java面試——鎖的詳細內(nèi)容,更多請關注php中文網(wǎng)其它相關文章!

java速學教程(入門到精通)
java速學教程(入門到精通)

java怎么學習?java怎么入門?java在哪學?java怎么學才快?不用擔心,這里為大家提供了java速學教程(入門到精通),有需要的小伙伴保存下載就能學習啦!

下載
來源:csdn網(wǎng)
本文內(nèi)容由網(wǎng)友自發(fā)貢獻,版權歸原作者所有,本站不承擔相應法律責任。如您發(fā)現(xiàn)有涉嫌抄襲侵權的內(nèi)容,請聯(lián)系admin@php.cn
最新問題
開源免費商場系統(tǒng)廣告
最新下載
更多>
網(wǎng)站特效
網(wǎng)站源碼
網(wǎng)站素材
前端模板
關于我們 免責申明 意見反饋 講師合作 廣告合作 最新更新
php中文網(wǎng):公益在線php培訓,幫助PHP學習者快速成長!
關注服務號 技術交流群
PHP中文網(wǎng)訂閱號
每天精選資源文章推送
PHP中文網(wǎng)APP
隨時隨地碎片化學習
PHP中文網(wǎng)抖音號
發(fā)現(xiàn)有趣的

Copyright 2014-2025 http://www.miracleart.cn/ All Rights Reserved | php.cn | 湘ICP備2023035733號