仪陇家园分类信息网、仪陇生活网、仪陇家园网

搜索

如何获取CPU是几核心几线程 [复制链接]

[复制链接]
seo 发表于 2022-3-4 12:51:17 | 显示全部楼层 |阅读模式
大家都知道,在程序中利用多线程来做事可以提高效率,但不是线程数越多越好,不是无脑开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++代码翻译成了易语言的代码,
[color=]代码全开源,方便帮助大家更好地写多线程




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


            

            
            点我下载
            (已有 7 次下载)
            

            
            
        

        
               
            引用模块
            
            
            
源码文件名模块文件名
示例.e
                        
EC.ec

                        
                                            
回复

使用道具 举报

全部回复0 显示全部楼层

发表回复

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

楼主

审核员

热门推荐

联系客服 关注微信 下载APP 返回顶部 返回列表