2011-04-07 161 views
3

基本上,標題解釋了一切;我期待在C++中製作遊戲,並且我希望使用多線程處理物理引擎等內容,並在加載屏幕上保持動畫順暢。我見過一些多線程庫,但我想知道哪個最適合我的應用程序,這在Windows Mac和Linux上可以很好地工作。這樣的圖書館是否存在?C++跨平臺多線程?

回答

3

如果您可以使用c++0x threads,那就使用它。

如果不是,boost :: thread是最好的免費多平臺庫。

+0

謝謝。雖然C++ 0x跨平臺?對不起noob問題,但我無法在網上找到答案。 – Bojangles 2011-04-07 09:20:39

+0

@JamWaffles是的,但這確實取決於編譯器是否支持它。 C++ 0x仍然不標準化。 – 2011-04-07 09:23:29

+0

好的。我一直在閱讀,看起來不錯,如果有點混亂。我認爲提振是一種好的選擇,但我希望這可以達到C++標準。 – Bojangles 2011-04-07 09:28:46

6

您可能需要boost::thread或英特爾的線程構建模塊。我想推薦TBB,但我認爲它不是免費的,所以免費選擇boost::thread

+0

免費是一個要求非常的列表:-P謝謝該死高以及網格爲Boost推薦。我以前在不同的地方見過,但從來沒有新的多線程的好處 - 謝謝! – Bojangles 2011-04-07 09:06:26

+0

英特爾的TBB是免費的,事實上:根據GPL提供。請參閱http://threadingbuildingblocks.org。 – 2011-05-04 20:15:08

2

我的最愛是QThread。部分Qt庫。

+1

感謝您的建議。我並不太熱衷於僅僅爲了多線程而使用整個框架(儘管Boost類似),但是當我開始在Qt中編寫應用時,這會派上用場。 – Bojangles 2011-04-07 09:29:37

+0

不,提升並不相似。 Boost不是一個框架,而是一個鬆散的庫和工具集合。如果你只需要多線程,你甚至可以只提取boost/thread庫幷包含/鏈接那一個。 – Mephane 2011-04-07 12:26:35

1

目前我的建議是OpenMP的(對於g ++ libgomp,IBM XLC++,MSVC++都支持)

OpenMP的開發提供了並行而不算法設計干擾的簡單方法; OpenMP程序在並行和串行執行環境中編譯並正確運行。使用OpenMP的基於指令的並行機制還簡化了將現有的串行代碼轉換爲高效的並行代碼的行爲。

要保持相關性,免費的軟件開發工具必須支持新興技術:

爲起點

隨機報價見msdnGOMP

。通過實現OpenMP,GOMP提供了一個簡化的語法工具,用於創建針對並行體系結構的軟件。 OpenMP的的平臺中立的語法與GCC的可移植性目標和其他GNU項目

1

另一個不錯的庫,包括跨平臺線程是poco