マルチスレッドのプログラミング

はじめに

このマニュアルは、SolarisTM 2.5 以降のシステムで使用される POSIX スレッドと Solaris スレッドに対応した、マルチスレッドのプログラミングインタフェースの解説書です。このマニュアルでは、アプリケーションを作成するプログラマを対象に、マルチスレッドを使ったプログラムの作成方法と、既存のプログラムをマルチスレッド化する方法を説明します。

このマニュアルは、POSIX スレッドと Solaris スレッドの両方の実装を扱っていますが、ほとんどの説明は POSIX スレッドを前提にして書かれています。Solaris スレッドだけに適用される情報については、独立した章を設けて解説しています。

このマニュアルは、読者が次の基礎知識を持っていることを前提にして書かれています。

このマニュアルの構成

第 1 章「マルチスレッドの基礎」では、このリリースにおけるスレッドの実装について概説します。

第 2 章「スレッドを使った基本プログラミング」では、デフォルトの属性をもつスレッドの生成方法を中心に、一般的な POSIX スレッドライブラリルーチンについて説明します。

第 3 章「スレッド生成時の属性設定」では、デフォルト以外の属性をもつスレッドの生成方法を説明します。

第 4 章「同期オブジェクトを使ったプログラミング」では、スレッドライブラリの同期ルーチンについて説明します。

第 5 章「オペレーティングシステムが関係するプログラミング」では、マルチスレッドをサポートするためにオペレーティングシステムに加えられた変更を説明します。

第 6 章「安全なインタフェースと安全ではないインタフェース」では、マルチスレッドの安全性に関する問題を説明します

第 7 章「コンパイルとデバッグ」では、マルチスレッド対応のアプリケーションのコンパイルとデバッグの基礎を説明します。

第 8 章「MT プログラム開発用ツール」では、マルチスレッド対応のプログラムの開発用に使用できるツールについてします。

第 9 章「Solaris スレッドを使ったプログラミング」では、Solaris スレッド (POSIX スレッドと対比される) インタフェースについて説明します。

第 10 章「プログラミング上の指針」では、マルチスレッドアプリケーションを作成するプログラマのための指針です。

付録 A 「アプリケーションの例 − マルチスレッド化された grep」 では、POSIX スレッド用プログラムを作成する方法を示します。

付録 B 「Solaris スレッドの例 − barrier.c」 では、Solaris スレッドの中にバリアを設ける例を示します。

付録 C 「「MT-安全」ライブラリインタフェース」 では、ライブラリルーチンの安全レベルの一覧です。

マルチスレッドプログラミングについては、下記の World Wide Web (WWW) サイトも参照してください。

http://www.sun.com/sunsoft/Products/Developer-products/sig/threads

マニュアルの注文方法

SunDocsTM プログラムでは、米国 Sun Microsystems, Inc. (以降、Sun とします) の 250 冊以上のマニュアルを扱っています。このプログラムを利用して、マニュアルのセットまたは個々のマニュアルをご注文いただけます。

マニュアルのリストと注文方法については、米国 SunExpressTM, Inc. のインターネットホームページ http://www.sun.com/sunexpress にあるカタログセクションを参照してください。

表記上の規則

このマニュアルでは、次のような字体や記号を特別な意味を持つものとして使用します。

表 P-1 表記上の規則

字体または記号 

意味 

例 

AaBbCc123

コマンド名、ファイル名、およびディレクトリ名を示します。または、画面上のコンピュータ出力を示します。 

.login ファイルを編集します。

ls -a を使用してすべてのファイルを表示します。

system%

AaBbCc123

ユーザーが入力する文字を、画面上のコンピュータ出力とは区別して示します。 

system% su

password:

AaBbCc123

変数を示します。実際に使用する特定の名前または値で置き換えます。 

ファイルを削除するには、rm filename と入力します。

『 』 

参照する書名を示します。 

『コードマネージャ・ユーザーズガイド』を参照してください。 

「 」 

参照する章や節を示します。また、ボタンやメニューなど、強調する単語を囲む場合にも使用します。 

第 5 章「衝突の回避」を参照してください。 

コード例は次のように表示されます。

[ ] は省略可能な項目を示します。上記の場合、filename は省略してもよいことを示します。

ただし、AnswerBook2TM では、ユーザーが入力する文字と画面上のコンピュータ出力は区別して表示されません。