付録 (Delphi コンカレントプログラミング)


付録

データベースとマルチスレッド

コネクションプーリングについては次の記事を参考にしてください。

Concurrent Pascal について

マルチスレッドプログラミングにおけるモニタという概念はエドガー・ダイクストラがアイデアを提案し、パー・ブリンチ・ハンセンと C.A.R.ホーアによって定義され、

アルフレッド・C・ハートマン (と、パー・ブリンチ・ハンセン) により Concurrent Pascal (1974 年) において初めて実装されました 1

これが回りまわって Delphi にやってきたというわけです (記事中で TMonitor が紹介されています)。Concurrent Pascal のモニタ型のコードは次のような感じです。

type
  linebuffer = monitor
  var
    contents: line;
    full: Boolean;
    sender, receiver: queue;
  procedure entry receive(var text: line);
  begin
    if not full then
      delay(receiver);
    text := contents;
    full := False;
    continue(sender);
  end;
  procedure entry send(var text: line);
  begin
    if full then
      delay(sender);
    contents := text;
    full := True;
    continue(receiver);
  end;
  begin
    full := False;
  end;

Concurrent Pascal には Simula 67 から借りてきたような文法があります (クラスとか)。Concurrent Pascal の構文図は SpringerLink の Back Matter で読めます。

タイトル 著者 ISBN-10
(Amazon)
出版年
A Concurrent Pascal Compiler for Minicomputers アルフレッド・C・ハートマン(著) 3540082409 1977/6
The Architecture of Concurrent Programs パー・ブリンチ・ハンセン(著) 0130446289 1977/12
コンピュータ・サイエンス研究書シリーズ 35
並行動作プログラムの構造
パー・ブリンチ・ハンセン(著)
田中英彦(訳)
B000J6MYTU 1980/1/25

See also:

SuperPascal について

パー・ブリンチ・ハンセンが書いた並行処理可能な Pascal に SuperPascal (1993 年) があります。

See also:

参考文献

記事を書く上で参考にした書籍です。

タイトル 著者 ISBN-10
(Amazon)
出版年
Mastering Delphi Programming: A Complete Reference Guide Primož Gabrijelčič (著) 1838989110 2019/11/26
Delphi Cookbook Third Edition Daniele Spinetti (著) B07FNWNRSY 2018/7/31
Delphi High Performance Primož Gabrijelčič (著) 1788625455 2018/2/26
More Coding in Delphi Nick Hodges (著) 194126610X 2015/12/06
Java 言語で学ぶデザインパターン入門 マルチスレッド編 結城 浩 (著) 4797319127 2002/6/28
Delphi クイックリファレンス Ray Lischner (著), 光田 秀, 竹田 知生 (訳) 4873110408 2001/5/1
Delphi マガジン Vol.5 2 PS ネットワーク 4939049051 1999/7/1
Delphi マガジン Vol.4 3 PS ネットワーク 4939049043 1999/5/1
Delphi マガジン Vol.3 4 PS ネットワーク 4939049035 1999/3/1
Delphi 4 プログラミング技法 Vol.1 Xavier Pacheco (著), Steve Teixeria (著), 日向 俊二 (訳) 489471082X 1998/12/25
インサイド Windows NT 第二版 David A. Solomon (著), 東京ネットワーク情報サービス(訳) 4891000309 1998/9/27
Inside Delphi Ray Lischner(著), 光田 秀(訳) 4756119514 1997/12/1
Win32 マルチスレッドプログラミング James E. Beveridge, Robert Wiener (著), インフォビジョン (訳) 4756114040 1997/9/1
Windows NT マルチスレッドプログラミング入門 Thuan Q. Pham, Pankaj K. Garg (著), 川手 恭輔 (訳) 4810189600 1996/12/20
Windows 95 API バイブル <1> Richard J. Simon, Michael Gouker, Brian C. Barnes (著), スリーエーシステムズ (訳), 江藤ソフトオフィス (監) 4881354302 1996/10/31
マルチスレッドプログラミング入門 Bil Lewis, Daniel J. Berg (著), 岩本 信一 (訳) 4756116825 1996/9/31
ADVANCED WINDOWS NT Jeffrey Richter (著), 梅原 系, 長尾 高弘, 鈴木 慎司 (訳) 4756103014 1995/1/1

See also:

索引

[ ← 9. 非同期プログラミング ライブラリ (APL) ] [ ↑ 目次へ ]


  1. 『並行動作プログラムの構造』には「1974年に Al Hartman は Sequential Pascal を用いて、Concurrent Pascal と名付けた新しいプログラミング言語のコンパイラを作成した」「Sequential Pascal および Concurrent Pascal のコンパイラは Al Hartman と筆者によって半年で設計・実装した」とあります。 

  2. 阿部 隆 (1999).「Delphi マルチスレッドプログラミング 応用編」『Delphi マガジン』, vol.5, PS ネットワーク, pp.78-94. 

  3. 阿部 隆 (1999).「Delphi マルチスレッドプログラミング 実践編」『Delphi マガジン』, vol.4, PS ネットワーク, pp.58-73. 

  4. 阿部 隆 (1999).「Delphi マルチスレッドプログラミング 基礎編」『Delphi マガジン』, vol.3, PS ネットワーク, pp.85-101.