+ 1
Is packaged task not in thread
Hi Does package task not executed in different thread? Is it possible to get it executed in separate thread ? https://sololearn.com/compiler-playground/cktXscBZYYAn/?ref=app
3 Answers
+ 3
like this?
#include <iostream>
#include <future>
#include <thread>
int getValue(int n)
{
std::cout << "from getValue: " << std::this_thread::get_id() << '\n' << n <<'\n';
return n;
}
int main()
{
std::packaged_task<int(int)> pg(getValue);
std::thread t1(move(pg), 11);
t1.join();
std::packaged_task<int(int)> pg2(getValue);
pg2(12);
std::future<int> f = pg2.get_future();
std::cout << "from main: "
<< std::this_thread::get_id()
<< '\n' << f.get() << '\n';
}
related articles:
https://stackoverflow.com/questions/20306335/c11-packaged-task-running-with-its-own-thread-need-a-join-in-order-to-get-fu
https://dev.to/clightning/good-bad-ugly-in-concurrent-programming-with-c-30ke#:~:text=The%20std%3A%3Apackaged_task%20is,the%20execution%20of%20the%20task.
https://stackoverflow.com/questions/18143661/what-is-the-difference-between-packaged-task-and-async
+ 1
Thanks Bob_Li
+ 1
I wrongly assumed that packaged task is always a different thread