PthreadIntro
24/30 プログラム例1(POSIX threadを用いたC言語 (2スレッド) )

【テロップ】
※各テロップ文字をクリックすると該当の場所がピンポイントで閲覧できます。



【ノート】
さて、これがポジックススレッドを用いたプログラムになります。 まず、pスレッドどっとhをインクルードします。 このプログラムでは、関数に3個の引き数が必要です。それを構造体で表現するために、イントのポインタと、イントが2個のメンバーを持つ構造体を宣言します。 今回は2個のスレッドを生成するプログラムを対象としているので、main関数の中に、 この構造体を型とする、2個の要素をもつ配列として宣言します。 また、初期化として、配列の先頭アドレス、ここでは、データという名前の配列名を書き、フォーループで計算する範囲を、 その後に記載しています。すなわち、0と3、それと、3と6です。 生成するスレッドは2個なので、pスレッドクリエイト関数は2回呼び出します。引き数には、関数subと、その関数の引き数になる、構造体の配列の要素の、0番目と、1番目のポインタが書かれていることに注意しましょう。また、最初の引き数には、スレッドを区別する変数が書かれており、それらはポインタになっています。 スレッドで最初に実行される関数subは、引き数は構造体のポインタ一つになっており、関数の中で、構造体のメンバーを、その関数の中で使う変数名、すなわち、d、bgn、endにコピーしています。以降の計算は先ほどの関数と同じです。 最後に、pスレッドジョイン関数でスレッドの終了を確認します。 以上の流れで、ポジックススレッドを用いたマルチスレッドのプログラムが実行できます。