2011-09-09 51 views
0

我在寫這個使用Boost線程和SFML來使用TCP和UDP套接字的C++應用程序。我有一個4代碼Xeon CPU,但它似乎只使用1個內核。我如何才能訪問完整的4核?多核心編碼

回答

1

線程分配取決於您正在使用的操作系統。也請告訴你「你的意思是什麼」,但看起來我只用了一個核心「。

但是你可以做一些研究:

  1. 檢查升壓hardware_concurency()
  2. 如果您使用的是Windows有一個很好的計劃,會告訴你多少個線程在應用程序正在運行,這線程與特定硬件核心和用途(點擊屬性和線程選項卡)相關聯: http://technet.microsoft.com/en-us/sysinternals/bb896653

  3. 線程實際執行了哪些工作?也許你有一些競爭狀態,如線程飢餓等

  4. AFAIK有沒有意義使多個線程發送一些數據,因爲所有數據都是通過內核驅動程序傳輸並在最後序列化。

BR

+0

'線程分配要由OS你using' - 並非完全如此(你可以設置線程的親和力,只要有足夠的權限) – sehe