好吧,所以我在动态分配工作给队列中的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