2010-03-17 83 views
2

我只是想知道到底是什麼因素影響了執行的速度有多快的CreateThread,它具有能活多久,使其「值得」。CreateThread()有多昂貴?

背景:我應該在我的遊戲的循環在哪裏產生線程?

回答

3

主要的遊戲循環是不產卵工作線程的地方。主遊戲循環應該儘可能沒有混亂。應用程序線程應該在程序啓動時產生,然後在主遊戲循環中用作需要。研究線程池技術。

+0

我同意。當我還是學生的時候,我曾經在20世紀80年代寫過遊戲。當時我們沒有線程,但是我們確實有各種中斷(垂直空白,柵格和NMI)。你總是在開始時設置這些東西,然後從那裏控制它們。我看不到任何理由不採取與線程相同的方法。 設置起來以備不時之需。 對於我們現在編寫的線程應用程序,我們不會在重載代碼中創建它們 - 我們在「會話」開始時創建它們,並在會話關閉時將其銷燬。 – 2010-03-17 20:32:00

0

我同意一般與前面的答案。我會添加一個關於Windows'CreateThread的筆記。它在一般分配一些棧,所以我們必須考慮的開銷由於某種在用戶空間動態內存分配。

問候