1
我有一個理論上的OpenMP問題給大家。 想象我做到以下幾點:使用任務分割使用OpenMP的動態變化鏈表
#pragma omp parallel
{
#pragma omp single
{
while (!empty(linkedList)) {
#pragma omp task
doWork();
}
}
}
如果的doWork()將元素放回列表中會發生什麼? 我擔心的是,在完成任務的線程完成之前,正在執行任務的單線程將終止。這可能意味着任何被doWork函數添加回列表的元素都會被忽略。有人知道這是如何工作的嗎?
謝謝!