软件开发过程中,使用到多线程是不可避免的事情。
线程开多少合适呢,一般的用法就是根据需要来,用到多少,就启动多少个线程,这个就有点简单粗暴了。稍微进一步,就是使用线程池了,这个就得实实在在定出个初始线程数量了。这个时候如果清楚自身CPU支持的线程数,心里就大概有数了。
此时,我们的hardware_concurrency就排上用场了。正常返回支持的并发线程数,若值非良定义或不可计算,则返回 0。
经过测试,无论是在电脑上直接运行,还是在虚拟机里运行,都能准确获取CPU的核心数。