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

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

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

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

用語 

定義 

プロセス 

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

スレッド

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

pthread (POSIX スレッド)

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

Solaris スレッド 

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

シングルスレッド化

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

マルチスレッド化

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

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

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

軽量プロセス (LWP)

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

結合スレッド

特定の LWP に常に結合させるユーザーレベルスレッド 

非結合スレッド 

特定の LWP に必ずしも結合しないユーザーレベルスレッド 

属性オブジェクト 

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

相互排他ロック 

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

条件変数 

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

読み取り / 書き込みロック 

共有データに対して、複数の読み取り専用アクセスを許可するが、共有データを変更する場合は、排他的アクセスを許可する 

計数型セマフォ

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

並列性 

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

並行性 

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