VC驿站

 找回密码
 加入驿站

QQ登录

只需一步,快速开始

搜索
查看: 136|回复: 1

[已解决]控制台程序如何利用CPU多核多线程

[复制链接]
19_avatar_middle
最佳答案
0 
在线会员 发表于 2020-2-4 21:36:51 | 显示全部楼层 |阅读模式
刚接触C++,还在看Syc大大的基础教程。
写了一个计算质数的控制台小程序。
Win7 64,运行的时候为啥只能占用CPU单个线程。
有什么方法可以多线程进行计算呢?

下面是代码,肯定还有很多不足的地方,毕竟刚开始学控制台程序如何利用CPU多核多线程
算到500w就挺慢了,代码还能怎么优化优化。
  1. #include <iostream>
  2. #include <ctime>
  3. using namespace std;

  4. int main(void)
  5. {
  6.         clock_t start_time, end_time;
  7.         int n = 0, i = 0, j = 2, c1 = 1, c2 = 0;
  8.         cout << "质数计算器" << endl << "请输入计算范围:2~";
  9.         cin >> n;
  10.         start_time = clock();
  11.         for (i = 2;i <= n;i++)
  12.         {
  13.                 c1 = 1;
  14.                 for (j = 2;j < i / 2 + 1;j++)
  15.                 {
  16.                         if (i % j == 0)
  17.                         {
  18.                                 c1 = 0;
  19.                                 break;
  20.                         }
  21.                 }
  22.                 if (c1 == 1)
  23.                 {
  24.                         cout << i << " ";
  25.                         c2++;
  26.                 }
  27.         }
  28.         cout << endl << "2~" << n << "共有" << c2 << "个质数" << endl;
  29.         end_time = clock();
  30.         cout << "计算用时:" << (float)(end_time - start_time) / CLOCKS_PER_SEC << "秒" << endl;
  31.         system("pause");
  32.         return 0;
  33. }
复制代码
最佳答案
51_avatar_small
2020-2-4 22:12:30
你这也没开新线程啊,肯定是单线程了。。。
同一时间只能有一个线程在跑




上一篇:SOCKET recv 接收数据太大,怎么办?
下一篇:问一个简单的VC问题
51_avatar_middle
最佳答案
82 
online_admins 发表于 2020-2-4 22:12:30 | 显示全部楼层    本楼为最佳答案   
bestAnswer
你这也没开新线程啊,肯定是单线程了。。。
同一时间只能有一个线程在跑
您需要登录后才可以回帖 登录 | 加入驿站 qq_login

本版积分规则

×【发帖 友情提示】
1、请回复有意义的内容,请勿恶意灌水;
2、纯数字、字母、表情等无意义的内容系统将自动删除;
3、若正常回复后帖子被自动删除,为系统误删的情况,请重新回复其他正常内容或等待管理员审核通过后会自动发布;
4、感谢您对VC驿站一如既往的支持,谢谢合作!

关闭

站长提醒上一条 /2 下一条

QQ|小黑屋|手机版|VC驿站 ( 辽ICP备09019393号 )|网站地图wx_jqr

GMT+8, 2020-10-31 10:12

Powered by CcTry.CoM

© 2009-2020 cctry.com

快速回复 返回顶部 返回列表