CodeGym
学習
コース
課題
アンケート & クイズ
ゲーム
ヘルプ
スケジュール
コミュニティ
ユーザー
フォーラム
チャット
記事
成功事例
アクティビティ
レビュー
サブスクリプション
ライトテーマ

レッスン

  • レビュー
  • 私たちについて
開始
学習開始
今すぐ学習を始める
  • 学習の進捗
  • コース
  • クエストマップ
  • レッスン
  • 共有リソースと同期: アクセスの問題

    JAVA 25 SELF
    レベル 52,レッスン 0
    この講義では、マルチスレッドアプリケーションにおける共有リソースとは何か、なぜレースコンディション(race condition)や「更新の消失」が起こるのか、そして synchronized でデータをどう守るかを扱います。同期の基本手法(メソッドとブロック)を解説し、 java.util.concurrent の現代的なツール群( Lock、 ReentrantLock、 Semaphore など)について触れ、カウンタのインクリメントの実例や典型的なミス( i ++ の非原子的性質、誤ったロック対象、 volatile に関する誤解)を見ていきます。
    利用可能
  • synchronized, volatile: 構文と適用

    JAVA 25 SELF
    レベル 52,レッスン 1
    マルチスレッドの実践講義: キーワード synchronized(ブロックとメソッド、オブジェクトのモニター、クラスレベルのロック ClassName.class)がどのように動くか、 volatile による変更の可視性が操作の原子性とどう違うか、なぜ boolean フラグは volatile にするのが便利で、インクリメント count ++ には同期が必要なのかを解説します。どの場面で synchronized を選び、どの場面で volatile を選ぶべきかを比較し、典型的なミスも取り上げます。
    利用可能
  • ReentrantLock と ReadWriteLock: 違いと例

    JAVA 25 SELF
    レベル 52,レッスン 2
    古典的な synchronized による同期と、パッケージ java.util.concurrent.locks にあるより柔軟なプリミティブ、 ReentrantLock と ReadWriteLock の実践的な比較。ロックを明示的に制御する方法( lock()/ unlock()、タイムアウト付き tryLock())、 ReentrantReadWriteLock で読み取りをスケールさせる方法、「フェアネス」( fair モード)とは何か、各ツールの適材適所、そして頻出のミスについて解説します。
    利用可能
  • ミューテックスとセマフォ:構文と課題

    JAVA 25 SELF
    レベル 52,レッスン 3
    この講義では、Java における主要な同期プリミティブを解説します。クリティカルセクションを synchronized やクラス ReentrantLock(メソッド lock()/ unlock()、 try- finally 構文)で保護する方法、さらに Semaphore(メソッド acquire()/ release())で並行度を制限する方法を扱います。ミューテックスとセマフォを表で比較し、実践的なケース(銀行、接続数に上限のあるサーバー)や、 デッドロックや性能低下を招く典型的なミスも取り上げます。
    利用可能
  • 同期でよくあるミスの解説

    JAVA 25 SELF
    レベル 52,レッスン 4
    Java のマルチスレッドでよくあるミスを実践的に解説: ReentrantLock や Semaphore での unlock()/ release() の呼び忘れ( try- finally で解決)、 synchronized の対象モニターの選定ミス、相互待ち(deadlock)とロック取得順、過剰な同期、さらに volatile の適用範囲と AtomicInteger への置き換え。サンプル、ヒント、わかりやすい比喩で、コードが固まって動かなくならないようにする。
    利用可能
学ぶ
  • 登録
  • Javaコース
  • 課題のサポート
  • 料金
  • ゲームプロジェクト
  • Java構文
コミュニティ
  • ユーザー
  • 記事
  • フォーラム
  • チャット
  • 成功事例
  • アクティビティ
  • アフィリエイトプログラム
会社情報
  • 私たちについて
  • 連絡先
  • レビュー
  • プレスルーム
  • CodeGym for EDU
  • よくある質問
  • サポート
CodeGymCodeGym は、ゼロからJavaプログラミングを学ぶためのオンラインコースです。このコースは初心者がJavaを習得するのに最適です。即時検証付きの1200以上の課題と、Java基礎理論の必要な範囲を含みます。学習の成功を支援するために、クイズ、コーディングプロジェクト、効率的な学習に関するコンテンツ、Java開発者のキャリアに関する機能など、一連のモチベーション機能を導入しています。
フォローする
インターフェース言語
English Deutsch Español हिन्दी Français Português Polski বাংলা 简体中文 मराठी தமிழ் Italiano Bahasa Indonesia 繁體中文 Nederlands
日本語
한국어 Bulgarian Danish Hungarian Basa Jawa Malay Norwegian Romanian Swedish Telugu Thai Українська Filipino Turkish Azərbaycan Русский Vietnamese
「プログラマーは生まれるのではなく、育てられる」 © 2026 CodeGym
MastercardVisa
「プログラマーは生まれるのではなく、育てられる」 © 2026 CodeGym