黄色网址大全免费-黄色网址你懂得-黄色网址你懂的-黄色网址有那些-免费超爽视频-免费大片黄国产在线观看

專注Java教育14年 全國咨詢/投訴熱線:400-8080-105
動力節點LOGO圖
始于2009,口口相傳的Java黃埔軍校
首頁 學習攻略 Java多線程原理:synchronized同步鎖的使用

Java多線程原理:synchronized同步鎖的使用

更新時間:2020-01-18 14:58:55 來源:動力節點 瀏覽3734次


Java多線程原理:synchronized同步鎖的使用


  作用和用法


  在多線程對共享資源進行并發訪問方面,JDK提供了synchronized關鍵字來進行線程同步,實現多線程并發訪問的線程安全。synchronized的作用主要體現在三個方面:(1)確保線程互斥地訪問同步代碼;(2)保證共享變量的線程可見性;(3)禁止指令重排。其中(2)和(3)相當于volatile關鍵字的作用。


  synchronized可以用在代碼的以下地方:


  (1)靜態方法:將類對象自身作為monitor對象,對該類所有使用了sychronized修飾的靜態方法進行同步,即任何時候只能存在一個線程在調用該類的使用了synchronized修飾的靜態方法,其他調用了該類的使用了synchronized修飾的靜態方法的線程需要阻塞;


  (2)普通成員方法:使用類的對象實例作為monitor對象,該類所有使用了synchronized修飾的成員方法,在任何時刻只能被一個線程訪問,其他線程需要阻塞;


  (3)代碼塊:使用某個對象作為monitor對象,通常為一個普通的private成員變量,如private Object object = new Object();,這樣所有使用了該object對象的同步塊,在任何時候只能存在一個線程訪問。


  synchronized可以與monitor對象的wait,notify,notifyAll方法一起來使用,實現線程之間的通信,如實現生產者和消費者模型。其中多個線程共享一個monitor對象,在線程持有synchronized鎖時,才能調用monitor的wait,notify或者notifyAll,分別用于釋放monitor鎖,阻塞休眠,等待其他線程;通知和喚醒其中一個阻塞休眠的線程,讓該線程去獲取monitor鎖;通知所有阻塞休眠的線程去競爭monitor鎖。


  synchronized使用方便,無需顯示地在應用代碼中加鎖和解鎖,只需在對應的方法或者代碼塊中使用synchronized關鍵字修飾即可,由JVM自身實現自動地加鎖和釋放鎖。


  synchronized修飾的范圍越小,線程并發度越高,性能越好,所以通常使用同步代碼塊,而不是同步方法來縮小同步范圍,優化性能。


Java多線程原理:synchronized同步鎖的使用


      以上就是動力節點Java培訓機構小編介紹的“Java多線程原理:synchronized同步鎖的使用”的內容,希望對大家有幫助,如有疑問,請在線咨詢,有專業老師隨時為你服務。


  相關內容


  java多線程的狀態轉換以及基本操作


  常見Java多線程面試題總結


  Java多線程學習,深入解析


提交申請后,顧問老師會電話與您溝通安排學習

免費課程推薦 >>
技術文檔推薦 >>
主站蜘蛛池模板: 免费国产h视频在线观看 | 亚洲欧美视频 | 99re最新地址获取精品 | 人人爱天天做夜夜爽 | 亚洲欧洲日产国码久在线观看 | 亚洲精品福利在线观看 | 狠狠夜色午夜久久综合热91 | 亚洲日本中文字幕天堂网 | 怡春院欧美杂交a | 性欧美video另类hd高清 | wwwwxxxx国产| 欧美日本日韩 | 婷婷六月丁香色婷婷网 | 欧美成人精品一级高清片 | 国内一卡2卡三卡四卡在线 国外欧美一区另类中文字幕 | 性色生活片在色在线观看 | 亚洲人成网站色7799在线播放 | 日韩毛片在线观看 | 色视频免费观看 | 一级特黄特色的免费大片视频 | 狠狠色狠狠色综合人人 | 在线网站污 | 成人片在线视频 | 成年男人永久免费看片 | 狠狠色欧美亚洲狠狠色五 | 激情网站免费 | 日韩中文字幕久久久经典网 | 青青草国产免费国产 | 国产日韩欧美一区二区三区视频 | 国产在线观看一区二区三区 | 成人一级毛片 | 男人天堂网2021 | 色在线导航 | 中文国产成人精品久久96 | 免费看特级淫片日本 | 精品视频免费在线 | 日韩成人毛片高清视频免费看 | 九九99国产精品视频 | 亚洲福利三区 | 欧美日韩亚洲人人夜夜澡 | 国产成人精品亚洲 |