標準プログラマーズ ライブラリシリーズJava スレッド完全制覇

[表紙]Java スレッド完全制覇

紙版発売

B5変形判/208ページ

定価2,398円(本体2,180円+税10%)

ISBN 4-7741-1491-X

ただいま弊社在庫はございません。

→学校・法人一括購入ご検討の皆様へ

書籍の概要

この本の概要

Javaプログラマを名乗るなら,スレッドプログラミングの知識は必須です。本書では「スレッドとは何か」にはじまり,スレッドの生成/実行/停止/同期などといったスレッド操作の基本を,他の入門書にはない切り口で丁寧に解説します。

こんな方におすすめ

  • Javaのスレッドやマルチスレッドについて集中的に理解したい方

目次

Chapter 1 スレッドプログラミングへの序章

  • 1.1 Javaの概要
    • 1.1.1 Javaの登場とその特徴
    • 1.1.1 Javaとスレッド〜避けて通れない関門?
  • 1.2 マルチスレッドとは
    • 1.2.1 シングルスレッド
    • 1.2.2 マルチスレッド〜2つ以上の制御の流れをコントロール
    • 1.2.3 マルチスレッドは難しくない!?
  • 1.3 マルチプロセス/マルチタスクとマルチスレッドの違い
  • 1.4 マルチスレッドを使う理由
    • 1.4.1 使わなければならない理由
    • 1.4.2 使った方がよい理由
  • 第1章のまとめ

Chapter 2 スレッドの基本操作

  • 2.1 スレッドの生成方法
    • 2.1.1 Threadクラスを継承する方法
    • 2.1.2 Runnableインターフェースを継承する方法
    • 2.1.3 どちらの方法を使うべきか?
    • 2.1.4 アプレットでの例
  • 2.2 スレッドの停止
    • 2.2.1 スレッドの状態取得
    • 2.2.2 スレッドの停止を待つ
    • 2.2.3 スレッドを停止するには
  • 2.3 プログラムの終了条件
  • 第2章のまとめ

Chapter 3 スレッドの同期

  • 3.1 非同期な実行が引き起こす問題
    • 3.1.1 エラーになる場合
    • 3.1.2 おかしな現象を引き起こす場合
  • 3.2 スレッドの同期
    • 3.2.1 synchronizedメソッド
    • 3.2.2 synchronizedブロック
  • 3.3 同期化についての注意点
    • 3.3.1 ロックは書き込み禁止スイッチではない
    • 3.3.2 ロックはオブジェクトに対して行われる
    • 3.3.3 デッドロック
  • 第3章のまとめ

Chapter 4 待機/通知/割り込み

  • 4.1 待機と通知
    • 4.1.1 バッファサイズを表示するプログラム
    • 4.1.2 バッファサイズが変わったときのみ表示を行うようにする
    • 4.1.3 Thread.sleep( )によりCPUにやさしいプログラムにする
    • 4.1.4 待機と通知
    • 4.1.5 ロックについて
    • 4.1.6 suspend( )/resume( )の代用
  • 4.2 割り込み
    • 4.2.1 interrupt( )
    • 4.2.2 interrupted( )とisInterrupt( )
  • 第4章のまとめ

Chapter 5 ThreadGroupとThreadLocal

  • 5.1 ThreadGroupクラス
    • 5.1.1 スレッドグループの基本操作
    • 5.1.2 スレッド/スレッドグループの削除
    • 5.1.3 デーモンスレッドグループ
    • 5.1.4 スレッドとスレッドグループの取得
    • 5.1.5 スレッドグループの親子関係
    • 5.1.6 interrupt( )のオーバーライド
    • 5.1.7 list( )メソッド
  • 5.2 ThreadLocalクラス
    • 5.2.1 ThreadLocalの基本操作
    • 5.2.2 initialValue( )のオーバーライド
    • 5.2.3 InheritableThreadLocalクラス
  • 第5章のまとめ

Chapter 6 スレッドのスケジューリングと優先度

  • 6.1 スケジューリングと優先度
    • 6.1.1 CPUとスレッドの数
    • 6.1.2 優先度の変更
  • 6.2 スケジューリングのアルゴリズム
    • 6.2.1 優先度と実行されるスレッド
    • 6.2.2 CPU解放の重要性
  • 第6章のまとめ

Chapter 7 スレッドプログラミングの例

  • 7.1 チャットシステムの概要
    • 7.1.1 チャットシステムの構成
  • 7.2 チャットクライアント
    • 7.2.1 チャットクライアントの概要
    • 7.2.2 チャットクライアントのクラス構成
    • 7.2.3 ClientReaderクラス
    • 7.2.4 ClientWriterクラス
    • 7.2.5 ClientReaderWriterクラス
    • 7.2.6 ChatClientクラス
  • 7.3 チャットサーバ
    • 7.3.1 チャットサーバの概要
    • 7.3.2 チャットサーバのクラス構成
    • 7.3.3 ClientManagerReader/ClientManagerWirterクラス
    • 7.3.4 ClientManagerクラス
    • 7.3.5 ClientAccepterクラス
    • 7.3.6 ChatServerクラス
  • 7.4 チャットシステムを実行してみる〜テストと課題
  • 第7章の課題

Appendix TimerクラスとTimerTaskクラス

  • App.1 HelloAppletアプレットをTimer/TimerTaskクラスを使うように変更
  • App.2 複数のタイマー処理の登録
  • App.3 遅延時の挙動
  • さくいん