麻豆黑色丝袜jk制服福利网站-麻豆精品传媒视频观看-麻豆精品传媒一二三区在线视频-麻豆精选传媒4区2021-在线视频99-在线视频a

千鋒教育-做有情懷、有良心、有品質的職業教育機構

手機站
千鋒教育

千鋒學習站 | 隨時隨地免費學

千鋒教育

掃一掃進入千鋒手機站

領取全套視頻
千鋒教育

關注千鋒學習站小程序
隨時隨地免費學習課程

當前位置:首頁  >  應聘面試  >  Java面試題  > java面試題:java知識點合集(十三)

java面試題:java知識點合集(十三)

來源:千鋒教育
發布人:wjy
時間: 2022-07-14 17:13:03 1657789983

  一. 什么是自旋

  很多 synchronized 里面的代碼只是一些很簡單的代碼,執行時間非常快,此時等待的線程都加鎖可能是一種不太值得的操作,因為線程阻塞涉及到用戶態和內核態切換的問題。既然 synchronized 里面的代碼執行得非常快,不妨讓等待鎖的線程不要被阻塞,而是在 synchronized 的邊界做忙循環,這就是自旋。如果做了多次循環發現還沒有獲得鎖,再阻塞,這樣可能是一種更好的策略。

  二. 多線程中 synchronized 鎖升級的原理是什么?

  synchronized 鎖升級原理:在鎖對象的對象頭里面有一個 threadid 字段,在第一次訪問的時候 threadid 為空,jvm 讓其持有偏向鎖,并將 threadid 設置為其線程 id,再次進入的時候會先判斷 threadid 是否與其線程 id 一致,如果一致則可以直接使用此對象,如果不一致,則升級偏向鎖為輕量級鎖,通過自旋循環一定次數來獲取鎖,執行一定次數之后,如果還沒有正常獲取到要使用的對象,此時就會把鎖從輕量級升級為重量級鎖,此過程就構成了 synchronized 鎖的升級。

  鎖的升級的目的:鎖升級是為了減低了鎖帶來的性能消耗。在 Java 6 之后優化 synchronized 的實現方式,使用了偏向鎖升級為輕量級鎖再升級到重量級鎖的方式,從而減低了鎖帶來的性能消耗。

java面試題:java知識點合集

  三. synchronized 和 ReentrantLock 區別是什么?

  synchronized 是和 if、else、for、while 一樣的關鍵字,ReentrantLock 是類,這是二者的本質區別。既然 ReentrantLock 是類,那么它就提供了比synchronized 更多更靈活的特性,可以被繼承、可以有方法、可以有各種各樣的類變量。

  synchronized 早期的實現比較低效,對比 ReentrantLock,大多數場景性能都相差較大,但是在 Java 6 中對 synchronized 進行了非常多的改進。

  1. 相同點:兩者都是可重入鎖

  兩者都是可重入鎖。“可重入鎖”概念是:自己可以再次獲取自己的內部鎖。比如一個線程獲得了某個對象的鎖,此時這個對象鎖還沒有釋放,當其再次想要獲取這個對象的鎖的時候還是可以獲取的,如果不可鎖重入的話,就會造成死鎖。同一個線程每次獲取鎖,鎖的計數器都自增1,所以要等到鎖的計數器下降為0時才能釋放鎖。

  2. 主要區別如下

  ●ReentrantLock 使用起來比較靈活,但是必須有釋放鎖的配合動作;

  ●ReentrantLock 必須手動獲取與釋放鎖,而 synchronized 不需要手動釋放和開啟鎖;

  ●ReentrantLock 只適用于代碼塊鎖,而 synchronized 可以修飾類、方法、變量等;

  ●二者的鎖機制其實也是不一樣的。ReentrantLock 底層調用的是 Unsafe 的park 方法加鎖,synchronized 操作的應該是對象頭中 mark word。

  Java中每一個對象都可以作為鎖,這是synchronized實現同步的基礎:

  ●普通同步方法,鎖是當前實例對象

  ●靜態同步方法,鎖是當前類的class對象

  ●同步方法塊,鎖是括號里面的對象

  四. Concurrency API 中的Lock接口是什么?對比Synchronized同步有什么優勢?

  Lock 接口比同步方法和同步塊提供了更具擴展性的鎖操作。他們允許更靈活的結構,可以具有完全不同的性質,并且可以支持多個相關類的條件對象。

  Lock的優勢有:

  ●可以使鎖更公平;

  ●可以使線程在等待鎖的時候響應中斷;

  ●可以讓線程嘗試獲取鎖,并在無法獲取鎖的時候立即返回或者等待一段時間;

  ●可以在不同的范圍,以不同的順序獲取和釋放鎖。

  整體上來說 Lock 是 synchronized 的擴展版,Lock 提供了無條件的、可輪詢的(tryLock 方法)、定時的(tryLock 帶參方法)、可中斷的(lockInterruptibly)、可多條件隊列的(newCondition 方法)鎖操作。另外 Lock 的實現類基本都支持非公平鎖(默認)和公平鎖,synchronized 只支持非公平鎖,當然,在大部分情況下,非公平鎖是高效的選擇。

  更多關于“Java培訓”的問題,歡迎咨詢千鋒教育在線名師。千鋒已有十余年的培訓經驗,課程大綱更科學更專業,有針對零基礎的就業班,有針對想提升技術的好程序員班,高品質課程助力你實現java程序員夢想。

tags:
聲明:本站稿件版權均屬千鋒教育所有,未經許可不得擅自轉載。
10年以上業內強師集結,手把手帶你蛻變精英
請您保持通訊暢通,專屬學習老師24小時內將與您1V1溝通
免費領取
今日已有369人領取成功
劉同學 138****2860 剛剛成功領取
王同學 131****2015 剛剛成功領取
張同學 133****4652 剛剛成功領取
李同學 135****8607 剛剛成功領取
楊同學 132****5667 剛剛成功領取
岳同學 134****6652 剛剛成功領取
梁同學 157****2950 剛剛成功領取
劉同學 189****1015 剛剛成功領取
張同學 155****4678 剛剛成功領取
鄒同學 139****2907 剛剛成功領取
董同學 138****2867 剛剛成功領取
周同學 136****3602 剛剛成功領取
相關推薦HOT
主站蜘蛛池模板: 毛片1| 久久这里只精品99re免费| 韩国电影中文字幕在线观看| 波多野结衣教师系列5| 波多野结衣女上司| 国产韩国精品一区二区三区| 国产精品毛片va一区二区三区| 国产福利在线观看一区二区| 国产**aa全黄毛片| 2021国内精品久久久久影院| 国产福利电影| a级毛片视频| 欧美ol丝袜高跟秘书在线播放| 国产精品素人福利| 亚洲国产精品久久网午夜| 最新国产精品亚洲| 成人试看120秒体验区| 亚洲s色大片| 波多结衣一区二区三区| 三级黄色片在线观看| 四虎永久免费地址ww484e5566| 二区三区在线| 色播成人网| 三级台湾电影在线| 色噜噜在线观看| 久久久久免费精品国产| 一本大道一卡2卡三卡4卡麻豆| 色丁香影院| 国产日韩在线亚洲字幕中文| 欧美国产激情二区三区| 4444www免费看| 日日操夜夜操免费视频| 色诱久久av| 麻豆传煤入口麻豆公司传媒| 丰满妇女做a级毛片免费观看| 中文字幕www| 国产一级做a爰片在线| 欧美精品一区二区三区在线| 十六以下岁女子毛片免费| 国产视频一区二区在线观看| 欧美a级成人淫片免费看|