2010-11-27 62 views
0

假設我們有一個不會干擾其他數據並獨立運行的函數。但是,我聽說一種方法是將整個應用程序放入一個部分,然後單獨放置一部分。它可以完成,而主應用程序產卵到一個線程,並確保主應用程序不會等待它結束?功能可以在主應用程序內獨立運行嗎? [OpenMP]

例如僞代碼:

int main (void) { 
    <do stuff on thread 0> 
    <do stuff on thread 0> 

    <spawn independent function on thread 1 with no waiting> 

    <do stuff on thread 0> 
    <do stuff on thread 0> 
} 

編輯:完全可以用另一種哲學來完成嗎? (沒有OpenMP)

+0

線程0不會等待你的函數對線程1完成爲標準。它實際上需要更多的工作讓你等待。 – Hannesh 2010-11-27 14:51:13

+0

您正在描述線程的行爲... – Falmarri 2010-11-27 17:54:55

回答

2

這不是OpenMP的主要目標:它是爲並行處理而非併發編程而構建的。檢查你的本地線程庫並尋找叫做「守護線程」,「分離線程」或類似的東西。

1

如果你指的是分離的線程,那麼答案是肯定的。線程運行,然後退出而不必等待。你失去了從線程獲得返回狀態的能力。

Larsmans後指出,爲什麼你可能不希望使用線程

相關問題