欢迎访问 生活随笔!

生活随笔

当前位置: 首页 > 编程语言 > c/c++ >内容正文

c/c++

Java native方法availableProcessors()获取处理器数量的底层C++实现

发布时间:2024/9/27 c/c++ 50 豆豆
生活随笔 收集整理的这篇文章主要介绍了 Java native方法availableProcessors()获取处理器数量的底层C++实现 小编觉得挺不错的,现在分享给大家,帮大家做个参考.

夫陶公清风千古,余又何人,敢称庶几

个人博客地址:http://blog.breez.work


📖别扯没用的、看代码

运行下面代码就这样子,代码有些少,尴尬😅:

public class CodeAnalyze {public static void main(String[] args) {int availableProcessors = Runtime.getRuntime().availableProcessors();System.out.println(availableProcessors + " 核");} } 12

📝源码分析

public native int availableProcessors();

进去一看,原来是个本地方法,传说native方法都是用C++实现的,我忍不住卷土重来,再写C++,不过,用C也是阔以的,哈哈😄!(C++菜的抠jio)

先生们,奥特曼!请看C++ SYSTEM_INFO结构体,它阔以获取当前计算机系统的信息。包括处理器的架构和类型、系统中的处理器数量、页面大小和其他此类信息。

typedef struct _SYSTEM_INFO {union {DWORD dwOemId;struct {WORD wProcessorArchitecture;WORD wReserved;} DUMMYSTRUCTNAME;} DUMMYUNIONNAME;DWORD dwPageSize;LPVOID lpMinimumApplicationAddress;LPVOID lpMaximumApplicationAddress;DWORD_PTR dwActiveProcessorMask;DWORD dwNumberOfProcessors;DWORD dwProcessorType;DWORD dwAllocationGranularity;WORD wProcessorLevel;WORD wProcessorRevision; } SYSTEM_INFO, *LPSYSTEM_INFO;

在这里我只说下:DWORD dwNumberOfProcessors;这个东西用法,它的作用是获取当前系统逻辑处理器数量。

听我口令:上代码!

#include "windows.h" #include "unistd.h" #include<stdio.h> int main() {SYSTEM_INFO sysInfo;GetSystemInfo(&sysInfo);int cpuCore = sysInfo.dwNumberOfProcessors;printf("%d 核\n",cpuCore) ;return 0;}


挺起来好像很牛逼的样子,其实啥也不是,菜鸟!!

想了解更多有关这方面的衰哥可以移步微软官方去看文档


青山不改,绿水长流,他日江湖相见,我必刺🗡各位一刀。告辞!

总结

以上是生活随笔为你收集整理的Java native方法availableProcessors()获取处理器数量的底层C++实现的全部内容,希望文章能够帮你解决所遇到的问题。

如果觉得生活随笔网站内容还不错,欢迎将生活随笔推荐给好友。