|
刚接触C++,还在看Syc大大的基础教程。
写了一个计算质数的控制台小程序。
Win7 64,运行的时候为啥只能占用CPU单个线程。
有什么方法可以多线程进行计算呢?
下面是代码,肯定还有很多不足的地方,毕竟刚开始学
算到500w就挺慢了,代码还能怎么优化优化。
- #include <iostream>
- #include <ctime>
- using namespace std;
- int main(void)
- {
- clock_t start_time, end_time;
- int n = 0, i = 0, j = 2, c1 = 1, c2 = 0;
- cout << "质数计算器" << endl << "请输入计算范围:2~";
- cin >> n;
- start_time = clock();
- for (i = 2;i <= n;i++)
- {
- c1 = 1;
- for (j = 2;j < i / 2 + 1;j++)
- {
- if (i % j == 0)
- {
- c1 = 0;
- break;
- }
- }
- if (c1 == 1)
- {
- cout << i << " ";
- c2++;
- }
- }
- cout << endl << "2~" << n << "共有" << c2 << "个质数" << endl;
- end_time = clock();
- cout << "计算用时:" << (float)(end_time - start_time) / CLOCKS_PER_SEC << "秒" << endl;
- system("pause");
- return 0;
- }
复制代码
你这也没开新线程啊,肯定是单线程了。。。
同一时间只能有一个线程在跑
|
上一篇: SOCKET recv 接收数据太大,怎么办?下一篇: 问一个简单的VC问题
|