ホーム › 並行処理・メモリ
並行処理・メモリ
Java の並行処理・メモリ管理サンプル集。スレッドセーフな採番から OutOfMemoryError の回避まで、業務システムで必須の知識を Pure Java で解説します。
P-01: スレッドセーフな採番(AtomicLong / LongAdder)
synchronized なしで競合を防ぐ AtomicLong と、高並行環境に最適な LongAdder の使い分け。注文番号・リクエストIDのシングルトン採番パターン。
AtomicLongLongAdderスレッドセーフP-02: DB を使った ATOMIC 採番(採番テーブル / SELECT FOR UPDATE)
複数 JVM から安全に採番するための DB 方式。UPDATE で行ロックを取得する採番テーブル方式と、SELECT FOR UPDATE 方式の実装例。
JDBCトランザクション採番テーブルP-03: OutOfMemoryError を体験する
ヒープ枯渇・メモリリーク・StackOverflowError の再現パターンと対策。WeakHashMap によるリーク回避、ヒープダンプ取得のJVMフラグも解説。
OutOfMemoryErrorメモリリークJVM