これで、キュー内のpthreadに作業を動的に割り当てることに問題があります。キューを介してpthreadに作業を動的に割り当てる
例えば、私のコードで私は以下のような構造体を有する:
struct calc
{
double num;
double calcVal;
};
Iは以下のように長さlのアレイ内の各構造体を格納します。
struct calc **calcArray;
/* then I initialize the calcArray to say length l and
fill each calc struct with a num*/
ここで、numに基づいて、calcValの値を探したいと思います。それぞれのstruct calcはnumの値が異なります。
開始時に、
スレッド0がcalcArray [0]
スレッド1が2になるcalcArray [1]
スレッドを取得し、取得しますので、私は十分に簡単である4 pthreadsを産卵したいが、私はそれを作りたいですcalcArray [2]
スレッド3はスレッド1が終了モミあれば今、それはそれぞれのcalcの計算を行うには、スレッドごとに異なる時間がかかること
を想定しcalcArray [3]
を取得しますST、次に[5]
を行うことcalcArray [4]
次いで3終了するスレッドとcalcArrayを取得し得るであろうし、それがcalcArray [L]の終わりに達するまで続きます。
私は配列を1/4に分割することができます(各スレッドは計算の4分の1を取得します)。しかし、これをしたくありません。代わりに私は仕事を待ち行列のようにしたいと思う。これを行う方法に関するアイデア?
おかげで男を、私はそれを本当に感謝しています。 :D – user730882
このコメントにはタイプミスがあります!それは "pthread"の代わりに "phread"と言います!私に長い時間をかけて発見しました。 –
@ user309483:修正されました。 –