技術セミナー・研修・出版・書籍・通信教育・eラーニング・講師派遣の テックセミナー ジェーピー

JCSPプログラミング技法

JCSP : Communicating Sequential Processes for Java

JCSPプログラミング技法

~Cloud Computing / Manycore時代のプログラミング | JCSPサンプルプログラム付~

ご案内

 JavaプログラミングはWebサーバからCloud Computing だけでなく、組み込みシステムにも広く採用されています。アプリケーションが大規模化し複雑化するに従って、アーキテクチャ設計との効率の良いネットワーク通信と高度で性能の良い並行処理技法が要求されます。
 ところが、Javaの並行処理プログラミング技法はマルチスレッドが中心であります。このマルチスレッドによる並行処理はメモリでの競合問題があり、スレッドは非決定的な振る舞いをすることは広く認識されています。そこで注目されていますのが、1996年以来英国ケント大学で継続して開発されています、CSPモデルに基くJava並行プログラミング技法です。
 CSPとは、Communicating Sequential Processの略で1978 年にオックスフォード大学のTony Hoareによって、考案されたプロセス代数であり、体系化された並行処理の代表的な手法です。
 本書の構成は、第1章でJCSPについて歴史的な背景、マルチスレッドの問題点、プロセスとチャネルについて述べます。第2章ではCSP/occamプロセスの代数的法則について述べます。第3章でJCSPプログラミングの基本的なクラスライブラリとそれを使ったCSPプロセスのデザインパターンについて述べます。このデザインパターンは比較的小さな規模のものですが、さらに大きなプロセスを構築する際の基本構造になります。第4章ではJCSPのプログラムをLAN上で動作させる方法について述べます。第5章では簡単な応用例を説明いたします。

目次

まえがき

第1章 JCSPについて

  • 1.1 歴史的経緯
  • 1.2 Java モニタについて
  • 1.3 マルチスレッドの問題点に対する提案
  • 1.4 JCSPとjava.util.concurrentの違い
  • 1.5 JCSPの利点
  • 1.6 ダウンロード
  • 1.7 プロセスとチャネルの基本構造
  • 1.8 設計方法
  • 1.9 同期通信
  • 1.10 状態遷移との関係

第2章 CSPプロセスと代数的法則

  • 2.1 CSPプロセスの表記
  • 2.2 occamプロセス
  • 2.3 代数的法則
  • 2.4 occamプログラミングの法則
    • 2.4.1 代入
    • 2.4.2 交換法則(Commutativity)
    • 2.4.3 結合法則(Associativity)
    • 2.4.4 単一法則(Singurality)
    • 2.4.5 分配法則(Distributivity)
    • 2.4.6 詳細化(Refinement)
  • 2.5 JCSPのクラス

第3章 JCSP Base Edition

  • 3.1 Parallelクラス
  • 3.2 簡単な並行処理
    • 3.2.1 Stop-and-Waitプロトコル
    • 3.2.2 単一バッファ
    • 3.2.3 キュー(Queue)
    • 3.2.4 Proc1to3
    • 3.2.5 Proc3to1
    • 3.2.6 One2Any
    • 3.2.7 Any2One
  • 3.3 階層化した並行処理
    • 3.3.1 パイプ(Pipe)
    • 3.3.2 100段のパイプ(Pipe100)
    • 3.3.3 階層化プログラム
    • 3.3.4 パイプ(Newton法)
    • 3.3.5 パイプ(Sort)
    • 3.3.6 パイプ(同期型入出力)
  • 3.4 同期した送受信
    • 3.4.1 同期送信(parSend)
    • 3.4.2 同期受信(parRead)
  • 3.5 CSTimerクラス
  • 3.6 Alternativeクラス
    • 3.6.1 一般的な例(Select)
    • 3.6.2 複数のチャネルがReady の場合
    • 3.6.3 priSelectメソッドの場合
    • 3.6.4 fairSelectメソッドの場合
    • 3.6.5 アクティブゲート(Active Gate) の制御
  • 3.7 ガード(Guard)
    • 3.7.1 タイムアウト
  • 3.8 Barrierクラス
  • 3.9 Bucketクラス
  • 3.10 Poisonクラス

第4章 JCSP Network Edition

  • 4.1 概要
  • 4.2 ネットワークプログラムの基本
  • 4.3 JCSP Network Editionのプログラム
    • 4.3.1 Proc1to3のNET版
    • 4.3.2 Proc3to1のNET版
    • 4.3.3 パイプ(Pipe4)のNET版
    • 4.3.4 Any2OneのNET版
    • 4.3.5 One2AnyのNET版
    • 4.3.6 AlternativeのNET版

第5章 応用編

  • 5.1 アクティブなAWT
    • 5.1.1 DisplayList
    • 5.1.2 ActiveCanvas
    • 5.1.3 WhiteBoard
    • 5.1.4 Scrollbar
    • 5.1.5 ScrollbarNet

参考文献

  • JCSPサンプルプログラム付

執筆者

松井 和人

NPO 法人CSP コンソーシアム

理事

出版社

お支払い方法、返品の可否は、必ず注文前にご確認をお願いいたします。

お問い合わせ

本出版物に関するお問い合わせは tech-seminar.jpのお問い合わせからお願いいたします。
(出版社への直接のお問い合わせはご遠慮くださいませ。)

体裁・ページ数

A4判 並製本 155ページ

発行年月

2013年1月

販売元

tech-seminar.jp

価格

45,000円 (税別) / 49,500円 (税込)

これから開催される関連セミナー

開始日時 会場 開催方法
2024/5/15 ソフトウェア開発への生成AI・ChatGPT導入と活用 オンライン
2024/6/18 Pythonではじめる機械学習入門講座 オンライン