ReentrantLockの内部原理とAQSの詳細解説

JUCにおけるAQSの構造 AQS(AbstractQueuedSynchronizer)は同期器であり、JUCの基礎ツールクラスです。ReentrantLockのロック取得はAQSを使用するため、まずAQSの全体構造を解説します。具体的な操作手法はReentrantLockの解説で説明します。 AQSのデータ構造 // AQSキュー先頭ノード private transient volatile Node head; // AQSキュー末尾ノード private transient ...

8月13日 08:13 投稿

Javaのsynchronizedとvolatileの違いと使い方

synchronized スレッドは、自身のスタックスペースを持ち、スクリプトのようにコードを順に実行していきます。しかし、各スレッドが孤立して動作するだけでは、その価値は限られます。複数のスレッドがデータを共有し、協調して作業を行うことで、大きな価値が生まれます。 Javaは、複数のスレッドが同じオブジェクトやそのメンバ変数に同時にアクセスすることをサポートし ...

7月7日 00:38 投稿

Redisを用いた分散ロックの実装と応用

分散ロックの基本概念 分散ロックは、複数プロセス間での可視性と相互排他を実現するメカニズムです。主な目的は、複数インスタンスが共有リソースへのアクセスを調整し、プログラムの直列実行を保証することにあります。 分散ロックの必須条件 可視性: すべてのプロセスが同じ状態を認識可能 相互排他: 同時に一つのプロセスのみがロックを保持 高可用性: システ ...

6月28日 19:39 投稿