#include <algorithm>
#include <chrono>
#include <iostream>
#include <memory>
#include <thread>
using ll = long long;
static constexpr ll Task = 5000000000;// 循环数
void foo(ll x);
int main()
{
int thcnt;
std::cin >> thcnt; //指定线程数量
auto t0 = std::chrono::steady_clock::now();
std::unique_ptr<std::thread[]> ths(std::make_unique<std::thread[]>(thcnt));
std::for_each_n(ths.get(), thcnt, [=](std::thread &th) { th = std::thread(foo, Task / thcnt); });
std::for_each_n(ths.get(), thcnt, [](std::thread &th) { return th.join(); });
std::cout << std::chrono::duration_cast<std::chrono::milliseconds>(std::chrono::steady_clock::now() - t0).count()
<< '\n'; //输出时间毫秒数
return 0;
}
void foo(ll x)
{
int s = 123;
for (ll i = 0; i < x; i++)
{
s *= s;
}
}
输入1:
4
输出1:
2513
输入2:
2
输出2:
4701