2010-11-12 62 views
7

我有一個廣泛使用pthread.h的代碼庫。在windows visual studio項目中,這顯然不起作用,因爲pthreads是一個unix實用程序。在windows上使用pthread.h

我知道存在並行線程-win32的或類似的東西,但有沒有辦法有一個代碼庫使用,無需更換所有的並行線程的代碼?

編輯:我寧願沒有去通過,並更換所有的並行線程調用。這是我的問題

+0

也許MinGW的幫助... – Vovanium 2010-11-12 23:58:06

+0

我不明白。你說你知道一個pthread庫存在win32,那麼你爲什麼不使用它? – jalf 2010-11-13 04:05:12

回答

5

我會建議提升爲包含一個獨立於平臺的線程抽象庫。我不認爲你會發現任何嘗試調用pthread函數本身是令人滿意的。自己將pthread映射到Win32也不是很困難。

+0

+1總是使用提升。 – SingleNegationElimination 2010-11-13 00:31:16

+4

對於擁有使用pthreads的現有代碼庫的人來說不是非常有用,他們不希望不必重寫線程代碼。 :) – jalf 2010-11-13 04:06:02

+0

我已經做了很多次。全球搜索/替換是有原因發明的。 – bmargulies 2010-11-13 13:14:24

2

如果代碼是非常沉重的* nix爲主,你可能會擁有最好的運氣Cygwin + GCC編譯它。如果pthreads是唯一的* nix依賴項,並且您希望避免Cygwin依賴項,那麼您應該使用Pthreads-win32