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

レッスン

  • レビュー
  • 私たちについて
開始
学習開始
今すぐ学習を始める
  • 学習の進捗
  • コース
  • クエストマップ
  • レッスン
  • マルチスレッド入門:なぜ必要か

    JAVA 25 SELF
    レベル 51,レッスン 0
    なぜプログラムにスレッドと並行性が必要なのか――応答性の高いインターフェースから CPU の全コア活用まで。プロセスとスレッドの違い、 JVM におけるメインスレッド main の役割、実用的なケース(UI、サーバ、ファイル処理)とリスク: race condition、 deadlock、さらに synchronized のような基本的な同期手段を解説します。 Thread を使って 2 つのタスクを並列に起動する簡単な例も示します。
    利用可能
  • スレッドの起動: Thread と Runnable、構文

    JAVA 25 SELF
    レベル 51,レッスン 1
    この講義では、Java におけるスレッドの起動を解説します。クラス Thread とインターフェース Runnable を紹介し、 start() の正しい呼び出し方と run() との違いを理解し、無名クラスやラムダ式を使い、複数スレッドの起動とライフサイクル( NEW → RUNNABLE → TERMINATED)を確認します。 Thread.currentThread()、 getName()、 join() による待機、 IllegalThreadStateException のような典型的なミスについても扱います。
    利用可能
  • スレッドの状態とライフサイクル

    JAVA 25 SELF
    レベル 51,レッスン 2
    Java におけるスレッドのライフサイクルを解説します。 Thread.State (
    NEW
    ,
    RUNNABLE
    ,
    BLOCKED
    ,
    WAITING
    ,
    TIMED_WAITING
    ,
    TERMINATED
    ) から各状態間の遷移まで。 Thread.sleep(...)、 join()、 interrupt() を使ったスレッド制御、 isAlive() と getState() による状態の診断、さらに stop()/ suspend()/ resume() のような古いメソッドを避ける方法まで扱います。最後に、実践的なヒントとよくある誤りも紹介します。
    利用可能
  • スレッドのパラメータと優先度

    JAVA 25 SELF
    レベル 51,レッスン 3
    クラスが実装する Runnable のコンストラクタ経由で、スレッドにパラメータを安全に渡す方法、ラムダ式が適切な場面、そしてフィールドを final にすべき理由。スレッドの優先度も解説します: setPriority/ getPriority メソッド、 Thread.MIN_PRIORITY、 Thread.NORM_PRIORITY、 Thread.MAX_PRIORITY といった定数と、それらがスケジューラ(scheduler)に与える影響。さらに—コンストラクタや setName/ getName によるスレッドの命名、実践的な例、そして典型的なミス(共有の Runnable、セッター、優先度への過度な期待)。
    利用可能
  • 競合状態(race condition)

    JAVA 25 SELF
    レベル 51,レッスン 4
    この講義では、競合状態とは何かを解説します。複数のスレッドが同時に共有データへアクセスし、その結果がスケジューリング順序に依存する状況です。インクリメント counter ++ を例に、なぜこの操作が原子的ではなく、どのようにインクリメントが失われるのかを示します。銀行口座の実例、プロダクションでの影響、そして防御手法としての synchronized、 java.util.concurrent.atomic(例: AtomicInteger)の原子型、さらにイミュータブル設計についても扱います。最後は「典型的なミス」セクションで、なぜ Thread バグはテストでめったに捕まらず、なぜそれを Thread. sleep( 1) で「治す」のが無意味なのかを説明します。
    利用可能
学ぶ
  • 登録
  • 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