搜尋
首頁JavaJava基礎一起和Netty學習Java鎖的使用

java基礎教學專欄介紹如何和Netty學習Java鎖定

一起和Netty學習Java鎖的使用

##推薦(免費):java基礎教學

1 鎖定的物件和範圍

    縮小粒度


2 鎖定的物件本身大小

    減少空間佔用

  • Atomic long V.S long
    前者是個對象,包含物件頭(object header)以保存hashcode、lock 等訊息,64 位元系統下佔16位元組,64位元系統下:
  • volatile long= 8 bytes
  • AtomicLong = 8 bytes (volatile long) 16bytes (物件頭) 8 bytes (引用) = 32 bytes
  • 至少節約24位元組!

所以Atomic* objects =》 Volatile primary type Static Atomic*FieldUpdater


3 鎖定的速度
## 提高並發性

LongCounter

記錄記憶體分配位元組數等功能用到的。

高並發下: java.util.concurrent.atomic.AtomicLong => java.util.concurrent.atomic.LongAdder


結論:及時衡量、使用JDK最新的功能

根據不同情況,選擇不同的並發套件實作

JDK


  • 4 不同場景選擇不同的並發類別

  • 因需而變


  • 關閉並等待關閉事件執行器( Event Executor) :
    Object.wait/ notify =》 CountDownLatch

  • Nio Event loop中負責儲存task的Queue

    Jdk's LinkedBlockingQueue (MPMC,多生產者多元消費者) -> jctools' MPSC io.netty.util.internal.PlatformDependent.Mpsc#newMpscQueue(int):





    ######## #######5 鎖定的價值#########能不用則不用則不用### Netty應用場景下:局部串列整體並行>- -個佇列多個執行緒模式:## # 降低用戶開發難度、邏輯簡單、提升處理效能### 避免鎖帶來的上下文切換和並發保護等額外開銷######避免用鎖:用ThreadLocal來避免資源爭用,例如Netty輕量級級的線程池實作#########

    以上是一起和Netty學習Java鎖的使用的詳細內容。更多資訊請關注PHP中文網其他相關文章!

    陳述
    本文轉載於:CSDN。如有侵權,請聯絡admin@php.cn刪除

    熱AI工具

    Undresser.AI Undress

    Undresser.AI Undress

    人工智慧驅動的應用程序,用於創建逼真的裸體照片

    AI Clothes Remover

    AI Clothes Remover

    用於從照片中去除衣服的線上人工智慧工具。

    Undress AI Tool

    Undress AI Tool

    免費脫衣圖片

    Clothoff.io

    Clothoff.io

    AI脫衣器

    Video Face Swap

    Video Face Swap

    使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

    熱工具

    SublimeText3 英文版

    SublimeText3 英文版

    推薦:為Win版本,支援程式碼提示!

    VSCode Windows 64位元 下載

    VSCode Windows 64位元 下載

    微軟推出的免費、功能強大的一款IDE編輯器

    PhpStorm Mac 版本

    PhpStorm Mac 版本

    最新(2018.2.1 )專業的PHP整合開發工具

    WebStorm Mac版

    WebStorm Mac版

    好用的JavaScript開發工具

    Dreamweaver CS6

    Dreamweaver CS6

    視覺化網頁開發工具