99久久久精品免费观看国产,紧身短裙女教师波多野,正在播放暮町ゆう子在线观看,欧美激情综合色综合啪啪五月

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

手機站
千鋒教育

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

千鋒教育

掃一掃進入千鋒手機站

領取全套視頻
千鋒教育

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

當前位置:首頁  >  應聘面試  >  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
主站蜘蛛池模板: zoom和okzoom在线视频| 麻豆波多野结衣| 伊人久久免费| tube8中国69videos| 一二三四在线观看免费高清视频| 野花日本免费观看高清电影8| a级毛片在线观看| 久久亚洲免费视频| 男女无遮挡边做边吃视频免费| 高清毛片免费看| 亚洲色中文字幕在线播放| 精品伊人久久大线蕉地址| 欧美成人免费在线观看| 妞干网手机免费视频| 国产午夜精品一区二区三区不卡 | 国产成人精品999在线观看| 一区五十路在线中出| 久久久久无码国产精品一区| 伦理一区二区三区| 日韩1234| 扒开末成年粉嫩的小缝视频| 中文字幕在线免费看| 94久久国产乱子伦精品免费| 国产精品人成在线播放新网站| 久久天天躁狠狠躁夜夜免费观看| 一级毛片无毒不卡直接观看| 国产aⅴ一区二区三区| 亚洲欧美日韩综合久久久久 | 处女影院| 动漫人物差差差免费动漫在线观看| 成人综合激情另类小说| 情侣视频精品免费的国产| 日韩中文精品亚洲第三区| 色午夜影院| 波多野结衣同性| 亚洲一区欧美一区| 午夜精品久久久久久中宇| 成年女人a毛片免费视频| 亚洲二区电影| 亚洲伦理一区二区| 永久免费毛片在线播放|