#include <iostream> #include <random> #include <ctime> #include <memory> #include <vector> #include <mutex> #include <future> std::mutex lockMutex; static int counter = 0; void mult() { std::lock_guard<std::mutex> outputLock(lockMutex); { std::cout << "Thread id : " << std::this_thread::get_id() << '\n'; std::cout << "Counter : " << ++counter << '\n'; } float x = rand() % 100 + (float(rand() % 100) / 100); float y = rand() % 100 + (float(rand() % 100) / 100); } int main() { const int NUM_OF_TASKS = 3000; srand(time(0)); std::vector<std::future<void>> vcFuts; vcFuts.reserve(NUM_OF_TASKS); for (int i = 0; i < NUM_OF_TASKS; ++i) { vcFuts.push_back(std::async(mult)); } for (auto&& fut : vcFuts) { fut.get(); } //char ch; //std::cin >> ch; }