好吧,所以我在動態分配工作給隊列中的pthreads時遇到了問題。通過隊列動態分配工作到pthreads
例如,在我的代碼有一個結構象下面這樣:
struct calc
{
double num;
double calcVal;
};
我存儲在長度l的陣列像下面的每個結構體。
struct calc **calcArray;
/* then I initialize the calcArray to say length l and
fill each calc struct with a num*/
現在,基於num,我想找到calcVal的值。每個結構calc對於num有不同的值。
我想產卵4個並行線程這是很容易,但我想使它所以在一開始,
線程0獲得calcArray [0]
線程1獲得calcArray [1]
線程2得到calcArray [2]
線3 calcArray [3]
現在假定,將需要不同的時間針對每個線程來執行的計算爲每個計算值,
如果線程1點結束冷杉ST,它就會得到calcArray [4]
那麼線程3個完成並得到calcArray [5]做
,這樣下去,直到達到calcArray [1]的結束。
我知道我可以將數組拆分爲1/4(每個線程獲得四分之一的計算)但我不想這樣做。相反,我想讓這項工作像一個隊列。任何想法如何做到這一點?
感謝的人,我真的很感激。 :D – user730882 2011-05-15 08:19:59
這個評論裏有錯別字!它說「phread」而不是「pthread」!花了很長時間才發現... – 2011-12-28 00:24:19
@ user309483:糟糕,糾正了。 – 2011-12-28 00:38:23