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

マルチスレッドに関する用語の定義

表 1-1 で、このマニュアルで使われている主な用語を紹介します。

表 1-1 マルチスレッドに関する用語の定義

用語 

定義 

プロセス 

fork(2) システムコールで生成される UNIX 環境 (ファイル記述子やユーザ ID などのコンテキスト) で、プログラムを実行するために設定される。

スレッド

プロセスのコンテキスト内で実行されるひとまとまりの命令 

pthread (POSIX スレッド)

POSIX 1003.1c に準拠したスレッドインタフェース 

Solaris スレッド 

POSIX に準拠しない、Sun MicrosystemsTM のスレッドインタフェース。pthread より先に存在

シングルスレッド化

1 プロセス 1 スレッドで動作させること 

マルチスレッド化

1 プロセス複数スレッドで動作させること 

ユーザレベルのスレッドまたはアプリケーションレベルのスレッド

(カーネル空間に対応する) ユーザ空間に位置し、スレッドライブラリルーチンによって管理されるスレッド 

軽量プロセス (LWP)

カーネルコードやシステムコールを実行する、カーネル内部のスレッド 

結合スレッド

LWP に固定的に結合したスレッド 

非結合スレッド

カーネルのサポートなしでコンテキストが非常にすばやく切り替わるデフォルトの Solaris スレッド 

属性オブジェクト 

不透明なデータ型と関連操作のための関数が含まれ、POSIX スレッド、mutex、条件変数の調整可能な部分を共通化するために使用される 

相互排他ロック 

共有データへのアクセスをロック / ロック解除する機能 

条件変数 

状態が変化するまでスレッドをブロックする機能 

計数型セマフォ

メモリーを使用する同期機構 

並列性 

2 つ以上のスレッドが同時に実行されている状態を表す概念 

並行性 

2 つ以上のスレッドが進行過程にある状態を表す概念。仮想的な並列性としてタイムスライスを包含する、一般化された形の並列性