如何获取CPU是几核心几线程

大家都知道,在程序中利用多线程来做事可以提高效率,但不是线程数越多越好,不是无脑开100或者1000个线程,如果你真这么做了,反而效率特别低,因为CPU切换线程上下文的代价比较大。    以我电脑为例,我的CPU是8核16线程,那我程序中开的线程数最好是16个线程。

    这里教大家一个在软件界大家都比较认同的一个线程数的方法,就是如果你的线程是计算密集型,那你的线程数一般是CPU的线程数,比如我的CPU是8核16线程,最好在程序中开16个线程,如果是IO密集型,那建议开CPU线程数的2倍个线程数,比如我的CPU是8核16线程,那16×2=32,那我最好开32个线程就行了,再多就不好了。

    那如何获取当前电脑是几核心几线程呢?查了下微软官方的开发文档,就是利用GetLogicalProcessorInformation这个API来获取,然后使用SYSTEM_LOGICAL_PROCESSOR_INFORMATION这个结构体的信息来获取,不过微软官方给的源码是C++的源码,在下不才,稍微懂点C语言,所以把这个C++代码翻译成了易语言的代码,代码全开源,方便帮助大家更好地写多线程

如何获取CPU是几核心几线程(图1)

如何获取CPU是几核心几线程(图2)

以下是微软官方的C++代码参考:https://docs.microsoft.com/en-us/windows/win32/api/sysinfoapi/nf-sysinfoapi-getlogicalprocessorinformation

有兴趣的可以研究下

如何获取CPU是几核心几线程(图3)


1、本站目前拥有近 1000+ 精品收费资源,现在加入VIP会员即可全部下载。
2、本资源部分来源其他付费资源平台或互联网收集,如有侵权请联系及时处理。
SEA模板网 » 如何获取CPU是几核心几线程

加入本站VIP会员订阅计划,海量资源免费查看

目前为止共有 3654 位优秀的VIP会员加入! 立刻加入VIP会员