Sun Studio 12: C ユーザーズガイド

private 変数

#pragma MP taskloop private (スレッド固有変数)

このプラグマは、現在のループでスレッド固有変数として扱われる必要のあるすべての変数を指定するために使用します。ループで使用されている別の変数は、それ自体が明確に共有、読み取り専用、または縮約であることが指定されていないかぎり、デフォルトのスコープの規則に従って、共有またはスレッド固有のどちらかに分類されます。

スレッド固有変数とは、それ自体の値がループのある繰り返しを処理するプロセッサ専用になっている変数のことです。別の言い方をすれば、ループのある繰り返しを処理しているプロセッサによってスレッド固有変数に代入された値は、そのループの別の繰り返しを処理しているプロセッサから見ることはできません。スレッド固有変数には、ループの繰り返しの開始時に初期値は代入されず、繰り返し内で最初に使用される前に、その繰り返し内で値が代入されなければいけません。値が設定される前にその値を参照するように明確に宣言されたスレッド固有変数を持つループを実行すると、その動作は保証されません。