1
我正在寫一個pthread程序。根據我在C#中的經驗,我認爲創建線程可能存在競爭條件。pthread_create()中是否存在潛在的競爭條件?
for (i = 0; i < 10; i++)
{
pthread_create(threads[i], NULL, &do_something, (void*)&data[i]);
}
是否有可能在創建新線程之前更新局部變量i?因此數組中的錯誤數據或線程條目可能會傳遞給do_something函數?至少在C#中,如果我使用Task.Factory.StartNew(),這是一個很大的問題。
在此先感謝。
這是我最初的設計:直接傳給我。然後我意識到了這個問題。但我不確定我問的問題。非常感謝。 – LLS 2010-11-08 10:22:58
只要線程和數據(如果它甚至被使用)超出線程本身,你一定很好。 – Flexo 2010-11-08 10:27:55