最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

簡單了解Java synchronized關(guān)鍵字同步

 更新時間:2019年09月29日 14:39:19   作者:shemlothae  
這篇文章主要介紹了簡單了解Java synchronized關(guān)鍵字同步,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下

 synchronized

synchronized可以用來同步塊,同步方法。同步塊可以用來更精確地控制對象鎖,控制鎖的作用域。(鎖的作用域就是從鎖的獲得到鎖的釋放的時間,而且可以選擇獲取哪個對象的鎖)。但是在使用同步塊機制時,過多的使用鎖也會引發(fā)死鎖問題,同時獲取和釋放也有代價。

而同步方法,它所擁有的就是該類的對象,換句話說,就是this對象,而且鎖的作用域是整個方法,這可能導致鎖的作用域太大,有可能導致死鎖問題。同時也可能包括了不需要同步的代碼塊在內(nèi),也會降低程序的運行效率。

不管是同步方法還是同步塊,我們都不應(yīng)該在里面包含無限循環(huán),不然有可能導致獲得鎖之后,無限循環(huán)下去,無法釋放獲得的鎖資源,從而導致等待鎖的線程無法獲得,出現(xiàn)死鎖問題。

同步方法

非靜態(tài)同步方法

所有的非靜態(tài)同步方法使用的都是同一把鎖----實例對象本身,也就是說一個實例對象的非靜態(tài)方法獲得鎖之后,此對象的其他非靜態(tài)方法必須等待該方法釋放鎖之后才能獲取鎖,而這個類的其他對象可以被獲取,其他對象的非靜態(tài)方法使用的是不同的鎖

靜態(tài)同步方法

所有的靜態(tài)同步方法使用的都是同一把鎖---該類對象本身,這兩把鎖使用的是不同的對象,所以,類的非靜態(tài)方法和靜態(tài)方法之間不存在鎖競爭。但是一個類的靜態(tài)方法之間存在鎖競爭,

同步塊

鎖是可以選擇的,所以只有存在同一把鎖的同步塊才存在鎖競爭,注意!同步塊的鎖是可以選擇的,但不是可以任意選擇的(使用一個引用對象的實例變量不是一個好的選擇,因為同步塊在執(zhí)行過程中,可能會改變它的值,比如設(shè)置為null,而對一個null對象加鎖會發(fā)生異常,并且對不同的對象加鎖也違背了使用鎖的初衷)

同步是基于對象而不是基于引用的,多個變量可以引用一個對象,變量也可以改變引用的對象,因此,我們要根據(jù)實例對象而不是引用來考慮!作為一個原則!永遠不要對一個可能再同步塊中改變其值的實例變量加鎖!?。?/p>

以上就是本文的全部內(nèi)容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • Java編程中利用InetAddress類確定特殊IP地址的方法

    Java編程中利用InetAddress類確定特殊IP地址的方法

    這篇文章主要介紹了Java編程中利用InetAddress類確定特殊IP地址的方法,InetAddress類是Java網(wǎng)絡(luò)編程中一個相當實用的類,需要的朋友可以參考下
    2015-11-11
  • java中的內(nèi)部類詳細總結(jié)

    java中的內(nèi)部類詳細總結(jié)

    內(nèi)部類不是很好理解,但說白了其實也就是一個類中還包含著另外一個類。如同一個人是由大腦、肢體、器官等身體結(jié)果組成,而內(nèi)部類相當于其中的某個器官之一,例如心臟:它也有自己的屬性和行為(血液、跳動)
    2013-10-10
  • Java實戰(zhàn)員工績效管理系統(tǒng)的實現(xiàn)流程

    Java實戰(zhàn)員工績效管理系統(tǒng)的實現(xiàn)流程

    只學書上的理論是遠遠不夠的,只有在實戰(zhàn)中才能獲得能力的提升,本篇文章手把手帶你用java+SSM+Mysql+Maven+HTML實現(xiàn)一個員工績效管理系統(tǒng),大家可以在過程中查缺補漏,提升水平
    2022-01-01
  • 如何用Java實現(xiàn).env文件讀取敏感數(shù)據(jù)

    如何用Java實現(xiàn).env文件讀取敏感數(shù)據(jù)

    這篇文章主要介紹了如何用Java實現(xiàn).env文件讀取敏感數(shù)據(jù),并提供了一個自動配置類EnvAutoConfiguration,common-env-starter-demo模塊展示了如何配置和啟動一個簡單的Spring Boot應(yīng)用程序,需要的朋友可以參考下
    2025-02-02
  • 解決springboot中配置過濾器以及可能出現(xiàn)的問題

    解決springboot中配置過濾器以及可能出現(xiàn)的問題

    這篇文章主要介紹了解決springboot中配置過濾器以及可能出現(xiàn)的問題,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-09-09
  • Java編程使用UDP建立群聊系統(tǒng)代碼實例

    Java編程使用UDP建立群聊系統(tǒng)代碼實例

    這篇文章主要介紹了Java編程使用UDP建立群聊系統(tǒng)代碼實例,具有一定借鑒價值,需要的朋友可以參考下。
    2018-01-01
  • java8中的HashMap原理詳解

    java8中的HashMap原理詳解

    這篇文章主要介紹了java8中的HashMap原理詳解,HashMap是日常開發(fā)中非常常用的容器,HashMap實現(xiàn)了Map接口,底層的實現(xiàn)原理是哈希表,HashMap不是一個線程安全的容器,需要的朋友可以參考下
    2023-09-09
  • Spring?Boot如何監(jiān)控SQL運行情況?

    Spring?Boot如何監(jiān)控SQL運行情況?

    Druid是Java語言中最好的數(shù)據(jù)庫連接池,下面這篇文章主要給大家介紹了關(guān)于Spring?Boot如何監(jiān)控SQL運行情況的相關(guān)資料,文中通過示例代碼介紹的非常詳細,需要的朋友可以參考下
    2022-04-04
  • Spring注解之@Conditional使用解析

    Spring注解之@Conditional使用解析

    這篇文章主要介紹了Spring注解之@Conditional使用解析,@Conditional注解可以說是SpringBoot的條件注解,表示組件只有在所有指定條件都匹配時才有資格注冊,條件是可以在 bean 定義注冊之前??以編程方式確定的任何狀態(tài),需要的朋友可以參考下
    2024-01-01
  • IP查詢系統(tǒng)的異步回調(diào)案例

    IP查詢系統(tǒng)的異步回調(diào)案例

    本文主要分享了IP查詢系統(tǒng)的異步回調(diào)案例,具有很好的參考價值,下面跟著小編一起來看下吧
    2017-02-02

最新評論

五原县| 建水县| 兴宁市| 郑州市| 高清| 岳阳市| 永清县| 砚山县| 大同市| 广州市| 瓮安县| 治多县| 九寨沟县| 三门县| 察隅县| 精河县| 阳东县| 巢湖市| 石台县| 泽库县| 琼中| 信宜市| 宁德市| 吴江市| 渝北区| 高州市| 忻州市| 福海县| 肥东县| 富源县| 漳州市| 达州市| 江山市| 玉屏| 方正县| 遵化市| 龙南县| 海南省| 菏泽市| 白玉县| 石景山区|