我讀了一些關於這個問題的文章。這個案子似乎並不容易。我想在兩個核心中創建兩個不同的線程。我閱讀的文章太複雜了。我甚至無法根據這些文章創建一個簡單的線程。另一方面,我需要了解計算機必須具備多少內核,才能在一個內核上使用內核或只創建線程。我想在窗戶上做。 任何幫助將非常歡迎在C++中使兩個不同的核心中的兩個線程
P.S:我不是在C + +親。所以,如果有可能,請以更簡單的方式引導我。
我讀了一些關於這個問題的文章。這個案子似乎並不容易。我想在兩個核心中創建兩個不同的線程。我閱讀的文章太複雜了。我甚至無法根據這些文章創建一個簡單的線程。另一方面,我需要了解計算機必須具備多少內核,才能在一個內核上使用內核或只創建線程。我想在窗戶上做。 任何幫助將非常歡迎在C++中使兩個不同的核心中的兩個線程
P.S:我不是在C + +親。所以,如果有可能,請以更簡單的方式引導我。
雖然它通常是一個糟糕的主意(線程調度通常做本身就是一個更好的工作),其基本思想是:
HANDLE thread_a = CreateThread(/* ... */);
HANDLE thread_b = CreateThread(/* ... */);
SetThreadAffinityMask(thread_a, 1 << 0);
SetThreadAffinityMask(thread_b, 1 << 1);
注意,1<<0
和1<<1
可以很容易地被分別寫爲1
和2
- 我只是想明確地表明每個位的位置代表一個處理器。
謝謝。我應該使用哪個頭文件來使用這些拖拽?並有一種方法可以瞭解電腦中有多少核心可用。有沒有關於createthread函數的任何教程?我該如何啓動它?或者給它一個我想讓它成爲一個過程的功能? – Masoud
@Masoud:至少如果內存服務的話,兩者都在'
@Masoud - 雖然Jerry的回答很好,但也許你應該在嘗試任何這樣的「優化」之前做更多的研究和/或獲得更多的多線程體驗。我得到的感覺是,無論你想要做什麼,以及你的經驗水平,你都不會成功:( –
你能說出你正在考慮其操作系統或線程庫?如果你還沒有決定,你可以選擇兩種流行選擇的助推線或posix。 – MartyE
@MartyE:我想在windows中編碼。無論如何,我打開任何圖書館建議 – Masoud
gotcha(我現在看到在標題)。對於本機窗口方式,試試jerrycoffin的答案,如果它的工作接受它。其他選項將嘗試提升線程,雖然它似乎不建議 – MartyE