Java 基本チュートリアルNetty を使って Java ロックを学ぶ方法を紹介するコラム
1 オブジェクトとスコープをロックする
- 粒度を減らす
-
2 ロック オブジェクト自体のサイズ
- 占有領域を減らす
-
アトミック long 対 S long
前者は、ハッシュコード、ロック、その他の情報を保存するためのオブジェクト ヘッダーを含むオブジェクトであり、64 ビット システムでは 16 バイトを占有します。ビット システム:
volatile long= 8 バイト - AtomicLong = 8 バイト (揮発性長) 16 バイト (オブジェクト ヘッダー) 8 バイト (参照) = 32 バイト
- 少なくとも 24 バイトを節約してください。
3 ロック速度
同時実行性の向上LongCounter
メモリ割り当てのバイト数を記録するなどの機能に使用されます。 高い同時実行性の場合: java.util.concurrent.atomic.AtomicLong => java.util.concurrent.atomic.LongAdder
さまざまな状況に応じて、さまざまな同時実行パッケージ実装を選択します
JDK
4 さまざまなシナリオに応じてさまざまな同時実行クラスを選択します
ニーズに応じて変更します- シャットダウン イベント エグゼキュータを閉じて待ちます ( Event Executor) :
Object.wait/notify =》 CountDownLatch
- Nio Event ループにタスクを保存するキュー
Jdk の LinkedBlockingQueue (MPMC) 、マルチプロデューサー 複数コンシューマー) -> jctools の MPSC
io.netty.util.internal.PlatformDependent.Mpsc#newMpscQueue(int):
使用できない場合は使用しないでください
Netty アプリケーションのシナリオ: 部分シリアルおよび全体並列>--1 つのキューと複数のスレッド モード: ユーザー開発の難しさを軽減し、ロジックを簡素化し、処理パフォーマンスを向上させます
ロックによるコンテキストの切り替えと同時実行保護の追加のオーバーヘッドを回避します
回避しますロックの使用: Netty の軽量レベルのスレッド プール実装などのリソース競合を回避するには、ThreadLocal を使用します。
以上がNetty で Java ロックの使用法を学ぶの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

AI Hentai Generator
AIヘンタイを無料で生成します。

人気の記事

ホットツール

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

SublimeText3 英語版
推奨: Win バージョン、コードプロンプトをサポート!

ドリームウィーバー CS6
ビジュアル Web 開発ツール

MantisBT
Mantis は、製品の欠陥追跡を支援するために設計された、導入が簡単な Web ベースの欠陥追跡ツールです。 PHP、MySQL、Web サーバーが必要です。デモおよびホスティング サービスをチェックしてください。

VSCode Windows 64 ビットのダウンロード
Microsoft によって発売された無料で強力な IDE エディター
