Rumah Java JavaAsas 一起和Netty学习Java锁的使用

一起和Netty学习Java锁的使用

Jan 04, 2021 am 10:04 AM
netty

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< 1.8考虑ConcurrentHashMapV8 ( ConcurrentHashMap在jDK8中的版本)

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轻量级的线程池实现

    Atas ialah kandungan terperinci 一起和Netty学习Java锁的使用. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn

Alat AI Hot

Undresser.AI Undress

Undresser.AI Undress

Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover

AI Clothes Remover

Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool

Undress AI Tool

Gambar buka pakaian secara percuma

Clothoff.io

Clothoff.io

Penyingkiran pakaian AI

AI Hentai Generator

AI Hentai Generator

Menjana ai hentai secara percuma.

Artikel Panas

R.E.P.O. Kristal tenaga dijelaskan dan apa yang mereka lakukan (kristal kuning)
1 bulan yang lalu By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Tetapan grafik terbaik
1 bulan yang lalu By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Cara Memperbaiki Audio Jika anda tidak dapat mendengar sesiapa
1 bulan yang lalu By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Arahan sembang dan cara menggunakannya
1 bulan yang lalu By 尊渡假赌尊渡假赌尊渡假赌

Alat panas

Notepad++7.3.1

Notepad++7.3.1

Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina

SublimeText3 versi Cina

Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1

Hantar Studio 13.0.1

Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6

Dreamweaver CS6

Alat pembangunan web visual

SublimeText3 versi Mac

SublimeText3 versi Mac

Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Menggunakan Netty4 untuk komunikasi TCP dalam pembangunan API Java Menggunakan Netty4 untuk komunikasi TCP dalam pembangunan API Java Jun 17, 2023 pm 11:18 PM

TCP ialah protokol komunikasi rangkaian komputer dan protokol penghantaran berorientasikan sambungan. Dalam pembangunan aplikasi Java, komunikasi TCP digunakan secara meluas dalam pelbagai senario, seperti penghantaran data antara pelanggan dan pelayan, penghantaran audio dan video masa nyata, dsb. Netty4 ialah rangka kerja pengaturcaraan rangkaian berprestasi tinggi, sangat berskala dan berprestasi tinggi yang boleh mengoptimumkan proses pertukaran data antara pelayan dan pelanggan untuk menjadikannya lebih cekap dan boleh dipercayai. Langkah-langkah pelaksanaan khusus menggunakan Netty4 untuk komunikasi TCP adalah seperti berikut: Pengenalan

Pembangunan Java: Cara menggunakan Netty untuk pengaturcaraan rangkaian berprestasi tinggi Pembangunan Java: Cara menggunakan Netty untuk pengaturcaraan rangkaian berprestasi tinggi Sep 20, 2023 pm 02:09 PM

Pembangunan Java: Cara menggunakan Netty untuk pengaturcaraan rangkaian berprestasi tinggi Ringkasan: Netty ialah rangka kerja pengaturcaraan rangkaian dipacu peristiwa berprestasi tinggi yang memudahkan proses pembangunan aplikasi rangkaian. Artikel ini akan memperkenalkan ciri utama Netty dan cara menggunakan Netty untuk pengaturcaraan rangkaian berprestasi tinggi. Pada masa yang sama, kami juga akan menyediakan beberapa contoh kod Java khusus untuk membantu pembaca memahami dan menggunakan Netty dengan lebih baik. 1. Pengenalan kepada Netty Netty ialah kotak pengaturcaraan rangkaian berasaskan JavaNIO

PHP melaksanakan rangka kerja Netty sumber terbuka PHP melaksanakan rangka kerja Netty sumber terbuka Jun 18, 2023 pm 07:03 PM

Dengan perkembangan berterusan teknologi Internet, pengaturcaraan rangkaian menjadi semakin penting. Dalam bidang ini, Netty adalah rangka kerja yang sangat terkenal. Ia ialah rangka kerja aplikasi rangkaian berprestasi tinggi yang dipacu peristiwa tak segerak yang digunakan secara meluas untuk membangunkan pelbagai aplikasi rangkaian konkurensi tinggi. Netty ialah rangka kerja Java, dan kemunculannya telah menggalakkan pembangunan pengaturcaraan rangkaian Java. Walau bagaimanapun, dengan penggunaan PHP yang meluas, pembangun PHP juga sedang mencari rangka kerja yang mampu untuk pengaturcaraan rangkaian konkurensi tinggi. Oleh itu, artikel ini menerangkan cara mengeksploitasi P

Apakah cara untuk springboot menyepadukan rangka kerja netty? Apakah cara untuk springboot menyepadukan rangka kerja netty? May 10, 2023 pm 09:55 PM

Sebagai rangka kerja io berprestasi tinggi, netty ialah rangka kerja teknikal yang sangat mudah digunakan Netty ialah rangka kerja pengaturcaraan bahagian pelanggan dan pelayan berdasarkan NIO boleh memastikan bahawa anda boleh membangunkan aplikasi rangkaian dengan cepat dan mudah sebagai melaksanakan beberapa jenis aplikasi Klien dan pelayan protokol. Netty adalah setara dengan memudahkan dan memperkemas proses pengaturcaraan dan pembangunan aplikasi rangkaian, seperti: pembangunan perkhidmatan soket berdasarkan TCP dan UDP. "Pantas" dan "mudah" tidak perlu mencipta masalah penyelenggaraan atau prestasi. Netty ialah projek yang menyerap pengalaman pelaksanaan berbilang protokol (termasuk pelbagai protokol teks binari seperti FTP, SMTP, HTTP, dll.) dan direka bentuk dengan agak teliti. Akhirnya Netty berjaya

Pembangunan backend Java: Gunakan Netty untuk membina pelayan API konkurensi tinggi Pembangunan backend Java: Gunakan Netty untuk membina pelayan API konkurensi tinggi Jun 17, 2023 am 10:23 AM

Dengan pembangunan berterusan Internet dan pengembangan bidang aplikasi, concurrency tinggi telah menjadi isu yang mesti dipertimbangkan dalam pembangunan aplikasi rangkaian Sebagai bahasa yang digunakan secara meluas dalam pembangunan aplikasi peringkat perusahaan, prestasi Java dalam senario aplikasi concurrency tinggi. perhatian. Netty ialah rangka kerja rangkaian berprestasi tinggi yang dipacu peristiwa tak segerak yang telah digunakan secara meluas dalam bidang pembangunan back-end Java sejak beberapa tahun kebelakangan ini. Artikel ini akan memperkenalkan konsep asas dan penggunaan Netty, dan mengambil membina pelayan API serentak tinggi sebagai contoh untuk menunjukkan Netty

Cara menggunakan Java untuk membangunkan aplikasi rangkaian berprestasi tinggi berdasarkan Netty Cara menggunakan Java untuk membangunkan aplikasi rangkaian berprestasi tinggi berdasarkan Netty Sep 20, 2023 pm 12:21 PM

Cara menggunakan Java untuk membangunkan aplikasi rangkaian berprestasi tinggi berdasarkan Netty ialah rangka kerja pengaturcaraan rangkaian berdasarkan teknologi JavaNIO dan digunakan secara meluas dalam pembangunan aplikasi rangkaian berprestasi tinggi. Dalam artikel ini, kami akan meneroka cara menggunakan Java dan Netty untuk membangunkan aplikasi rangkaian berprestasi tinggi berdasarkan Netty. Kami akan memperkenalkan konsep asas dan ciri Netty dan menyediakan beberapa contoh kod untuk membantu anda memahami dan menggunakan Netty dengan lebih baik. 1. Konsep dan ciri asas Netty Ne

Menggunakan Netty5 untuk komunikasi TCP dalam pembangunan API Java Menggunakan Netty5 untuk komunikasi TCP dalam pembangunan API Java Jun 18, 2023 am 08:31 AM

Dalam pembangunan JavaAPI, komunikasi TCP ialah komponen yang sangat penting, dan Netty5 ialah satu set rangka kerja komunikasi rangkaian berprestasi tinggi berdasarkan NIO, yang boleh mengendalikan tugas komunikasi rangkaian yang kompleks dengan sangat mudah. Artikel ini akan memperkenalkan cara menggunakan Netty5 untuk komunikasi TCP, termasuk komponen teras Netty5, pengenalan kepada API biasa dan kes aplikasi praktikal. Pada masa yang sama, artikel ini juga akan memperkenalkan cara menggunakan Netty5 untuk meningkatkan prestasi dan kebolehpercayaan komunikasi TCP. 1. Komponen teras Netty5 bagi Netty5

Menggunakan Netty untuk komunikasi TCP dalam pembangunan API Java Menggunakan Netty untuk komunikasi TCP dalam pembangunan API Java Jun 18, 2023 pm 11:34 PM

Menggunakan Netty untuk komunikasi TCP dalam pembangunan JavaAPI Dalam pembangunan perisian moden, komunikasi rangkaian telah menjadi bahagian penting. Netty ialah rangka kerja Java untuk pembangunan yang cekap dan pantas dalam aplikasi rangkaian berprestasi tinggi. Ia menyediakan API yang mudah digunakan yang merangkum JavaNIO dan perpustakaan rangkaian lain. Dalam pembangunan API Java, keunggulan Netty boleh dicerminkan dalam aspek berikut: Aplikasi Netty berprestasi tinggi

See all articles