我有一個算法可以在多個設備之間調度子任務來解決main_task。它將內核排入所有命令隊列,並通過回調附加一個事件。 在這個回調函數中,我檢查我的main_task是否完成,如果沒有,我排隊一個子任務。否則,我將共享變量is_main_task_done
設置爲true
以通知其他命令隊列它們應該停止排列子任務。等到命令隊列完成所有入隊作業
同時,我必須以某種方式防止主機的主線程退出,直到is_main_task_done
設置爲true
。是否有跨平臺解決方案?到目前爲止,我在AMD的指南中發現只有螺旋鎖解決方案:
while (!is_main_task_done)
sleep(0)
但它似乎只在Windows中工作。
如果你的任務沒有完成,你設置了is_task_done = true。這沒有意義。 – j13r 2012-04-14 14:52:01
對不起。我更新了術語。基本上它是一種在不同線程上具有不同範圍的for-loop。 – Kentzo 2012-04-14 16:04:27