正所谓一个木桶能装多少水, 取决于最短的木板,多个任务执行的最长时间,取决于多个任务中最长的时间。
#include <iostream>
#include <future>
#include <chrono>
#include <unistd.h>
#include <ctime>
int func1() {
sleep(10);
return 1;
}
int func2() {
sleep(5);
return 2;
}
int func3(int i) {
sleep(1);
return i;
}
void printtime() {
time_t now = time(0);
char* dt = ctime(&now);
std::cout << dt << std::endl;
}
int main() {
std::cout << "before feat" << std::endl;
printtime();
std::future<int> fut1 = std::async(std::launch::async, func1);
std::future<int> fut2 = std::async(std::launch::async, func2);
std::future<int> fut3 = std::async(std::launch::async, func3, 10);
printtime();
auto rst1 = fut1.get();
auto rst2 = fut2.get();
auto rst3 = fut3.get();
printtime();
std::cout << "rst = " << rst1 << std::endl;
std::cout << "rst = " << rst2 << std::endl;
std::cout << "rst = " << rst3 << std::endl;
return 0;
}