可能重複:
Programmatically find the number of cores on a machine我有多少個核心?
我有一個多線程的C++在Windows,MacOS和Linux上運行的程序。有沒有簡單的方法來找出我目前運行的機器有多少個內核?當每個內核有1個線程時,我的系統運行得最好。
可能重複:
Programmatically find the number of cores on a machine我有多少個核心?
我有一個多線程的C++在Windows,MacOS和Linux上運行的程序。有沒有簡單的方法來找出我目前運行的機器有多少個內核?當每個內核有1個線程時,我的系統運行得最好。
我相信這個問題可能包含你的答案:
Programmatically find the number of cores on a machine
編輯:我剛剛投過票了ybungalobill的答案。我愛boost
!
如果您有C++ 0x編譯器,則使用boost::thread::hardware_concurrency()
或std::thread::hardware_concurrency()
。
在linux系統上,cat/proc/cpuinfo和解析輸出是一種方法。不知道它是否是最有效的。