怎样判断计算机有多于一个cpu?

wtzmax 2005-05-17 12:23:22
怎样判断计算机是单cpu的还是多cpu的?
如果有多cpu怎样将运算分散到各个cpu(不用多线程,自己绕过os作分配)?
...全文
114 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
NowCan 2005-05-17
  • 打赏
  • 举报
回复
还有简单的,GetSystemInfo就可以了。
typedef struct _SYSTEM_INFO {
union {
DWORD dwOemId;
struct {
WORD wProcessorArchitecture;
WORD wReserved;
};
};
DWORD dwPageSize;
LPVOID lpMinimumApplicationAddress;
LPVOID lpMaximumApplicationAddress;
DWORD_PTR dwActiveProcessorMask;
DWORD dwNumberOfProcessors; <------这里!!!
DWORD dwProcessorType;
DWORD dwAllocationGranularity;
WORD wProcessorLevel;
WORD wProcessorRevision;
} SYSTEM_INFO;
NowCan 2005-05-17
  • 打赏
  • 举报
回复
Windows有这么一个函数GetProcessAffinityMask,应该是可以判断系统有多少个CPU的。但是我还不会用,也没用过。
至于任务分配,就更不会了。
mathe 2005-05-17
  • 打赏
  • 举报
回复
任务调度一般来说由操作系统自己来调度。调度任务要在特权级才能够做,用户级是没有权限的。
不创建线程是不可能的。可以通过创建线程,然后
自己调用GetThreadContext, SetThreadContext, SuspendThread, ResumeThread,
SetThreadAffinityMask等函数来强行调度。
maxcai 2005-05-17
  • 打赏
  • 举报
回复
开机箱的主意有点绝^^
hugomyj 2005-05-17
  • 打赏
  • 举报
回复
拆开机箱,看主板上有几个 CPU

33,028

社区成员

发帖
与我相关
我的任务
社区描述
数据结构与算法相关内容讨论专区
社区管理员
  • 数据结构与算法社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧