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

java關(guān)于并發(fā)模型中的兩種鎖知識點詳解

 更新時間:2021年04月02日 08:29:43   作者:小妮淺淺  
在本篇文章了小編給大家整理的是一篇關(guān)于java關(guān)于并發(fā)模型中的兩種鎖知識點詳解內(nèi)容,有興趣的朋友們可以學習下。

1、悲觀鎖

悲觀鎖假設(shè)最壞的情況(如果果你不鎖門,那么搗蛋鬼就會闖入并搞得一團糟),只有在確保其他線程不受干擾(獲得正確的鎖)的情況下才能執(zhí)行。

一般實現(xiàn)如獨占鎖等。

安全性更高,但中低并發(fā)性效率更低。

2、樂觀鎖

樂觀鎖通過沖突檢查機制判斷更新過程中是否存在其他線程干擾。如果存在,操作將失敗,重試(也可以不重試)。

CAS等常見實現(xiàn)。

一些樂觀鎖削弱了一致性,但在中低并發(fā)性下效率大大提高。

知識點擴展:

并行與分布式編程

關(guān)注的是復雜軟件系統(tǒng)的構(gòu)造,“復雜”是指多線程、分布式與GUI程序

在鎖與同步這一節(jié)中,詳細介紹了如何設(shè)計線程安全的ADT

并發(fā)

在我們的并發(fā)介紹中,我們看到了兩種并發(fā)編程模型:共享內(nèi)存和消息傳遞。

• 在共享內(nèi)存模型中 :并發(fā)模塊通過在內(nèi)存中讀取和寫入共享可變對象來進行交互。在單個Java進程中創(chuàng)建多個線程是我們共享內(nèi)存并發(fā)的主要示例。

• 在消息傳遞模型中:并發(fā)模塊通過通信通道相互發(fā)送不可變消息進行交互。該通信通道可以通過網(wǎng)絡(luò)連接不同的計算機,如我們的一些初始示例:Web瀏覽,即時消息等。


對于鎖,這是Java語言提供的內(nèi)嵌機制,每個Object都有相關(guān)聯(lián)的lock;

首先來了解一下java鎖的相關(guān)概念

Java的內(nèi)置鎖:每個java對象都可以用做一個實現(xiàn)同步的鎖,這些鎖成為內(nèi)置鎖。線程進入同步代碼塊或者代碼方法的時候會自動獲得該鎖,在退出同步代碼塊或者方法的時候則會釋放該鎖。獲得內(nèi)置鎖的唯一途徑就是進入這個鎖的保護的同步代碼塊或者方法。

Java內(nèi)置鎖是一個互斥鎖:就是最多一個程序能夠得到這個鎖。當多個線程想要對某個mutable類型的ADT操作時,就是修改它的值時,鎖能夠劫持這些線程的操作,阻塞他們,只有之前的線程結(jié)束調(diào)用時,釋放這個鎖,后面的線程才能獲得該鎖,否則一直等待下去。

用法

同步和鎖:阻止了多線程在同一時間內(nèi)對可變數(shù)據(jù)的共享操作,即程序員來負責多線程之間對mutable數(shù)據(jù)的共享操作,通過”同步”策略,避免多線程同時訪問數(shù)據(jù),使用鎖機制,獲取對數(shù)據(jù)的獨家mutation權(quán),其他線程被阻塞,不得訪問,即不可修改。

Java同步鎖實現(xiàn)方法

synchronized 關(guān)鍵詞修飾

wait、notify、notifyAll的使用

相關(guān)文章

  • Java?超詳細講解Spring?MVC異常處理機制

    Java?超詳細講解Spring?MVC異常處理機制

    Spring?MVC中提供了一個通用的異常處理機制,它提供了一個成熟、簡潔并且清晰的異常處理方案。當使用Spring?MVC開發(fā)Web應用時,利用這套現(xiàn)成的機制進行異常處理也更加自然并且高效
    2022-04-04
  • Java設(shè)置PDF跨頁表格重復顯示表頭行的步驟詳解

    Java設(shè)置PDF跨頁表格重復顯示表頭行的步驟詳解

    這篇文章主要給大家介紹了關(guān)于Java設(shè)置PDF跨頁表格重復顯示表頭行的相關(guān)資料,這里使用的是Free Spire.PDF for Java的jar包,Spire.PDF for Java 是一款專門對 PDF 文檔進行操作的 Java 類庫,需要的朋友可以參考下
    2021-07-07
  • Java設(shè)計模式——工廠設(shè)計模式詳解

    Java設(shè)計模式——工廠設(shè)計模式詳解

    這篇文章主要介紹了Java設(shè)計模式——工廠設(shè)計模式詳解,具有一定參考價值,需要的朋友可以了解下。
    2017-11-11
  • Spring Boot 使用WebAsyncTask異步返回結(jié)果

    Spring Boot 使用WebAsyncTask異步返回結(jié)果

    這篇文章主要介紹了Spring Boot 使用WebAsyncTask異步返回結(jié)果的相關(guān)資料,需要的朋友可以參考下
    2018-02-02
  • Springboot pom項目間接依賴包版本與預期不符原因解決分析

    Springboot pom項目間接依賴包版本與預期不符原因解決分析

    這篇文章主要介紹了Springboot pom項目間接依賴包版本與預期不符原因解決分析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2023-08-08
  • Java中臨時文件目錄的使用

    Java中臨時文件目錄的使用

    :Java提供了系統(tǒng)屬性java.io.tmpdir來獲取默認臨時文件目錄,適用于不同操作系統(tǒng),使用Files.createTempFile方法創(chuàng)建臨時文件,并在不需要時應及時刪除,下面就來介紹一下
    2024-10-10
  • SpringBoot?集成短信和郵件的配置示例詳解

    SpringBoot?集成短信和郵件的配置示例詳解

    這篇文章主要介紹了SpringBoot?集成短信和郵件的相關(guān)知識,項目中使用lombok插件和swagger依賴,無相關(guān)依賴的請自行修改,本文通過實例代碼給大家介紹的非常詳細,需要的朋友可以參考下
    2022-04-04
  • 詳解Spring Data操作Redis數(shù)據(jù)庫

    詳解Spring Data操作Redis數(shù)據(jù)庫

    Redis是一種NOSQL數(shù)據(jù)庫,Key-Value形式對數(shù)據(jù)進行存儲,其中數(shù)據(jù)可以以內(nèi)存形式存在,也可以持久化到文件系統(tǒng)。Spring data對Redis進行了很好的封裝,用起來也是十分的得心應手,接下來通過本文給大家分享Spring Data操作Redis數(shù)據(jù)庫,需要的朋友參考下
    2017-03-03
  • Java中String類常用類型實例總結(jié)

    Java中String類常用類型實例總結(jié)

    在我們開發(fā)中經(jīng)常會用到很多的常用的工具類,這里做一個總結(jié),下面這篇文章主要給大家介紹了關(guān)于Java中String類常用類型的相關(guān)資料,String類代表字符串,需要的朋友可以參考下
    2021-12-12
  • Spring AI ectorStore的使用流程

    Spring AI ectorStore的使用流程

    SpringAI中的VectorStore是一種用于存儲和檢索高維向量數(shù)據(jù)的數(shù)據(jù)庫或存儲解決方案,它在AI應用中發(fā)揮著至關(guān)重要的作用,本文給大家介紹Spring AI ectorStore的使用流程,感興趣的朋友一起看看吧
    2025-03-03

最新評論

辉县市| 如皋市| 灵寿县| 台安县| 永定县| 平乐县| 大庆市| 济阳县| 怀来县| 靖边县| 德州市| 宁陕县| 洪泽县| 潮安县| 海林市| 南宁市| 牟定县| 吉水县| 鞍山市| 阿拉善盟| 平和县| 从化市| 昂仁县| 临漳县| 内黄县| 和硕县| 吉木萨尔县| 平湖市| 乌兰浩特市| 大埔区| 濮阳县| 黄骅市| 东乡族自治县| 泰来县| 建德市| 二连浩特市| 呼伦贝尔市| 仙居县| 平武县| 灵宝市| 临夏县|