#include <iostream>
#include <thread>
#include <mutex>
#include <list>
#include <future>
using namespace std;
int myThread(int num)
{
cout << "myThread() start thread id =" << this_thread::get_id() << endl;
cout << "num is " << num << endl;
std::chrono::microseconds s(5000);
std::this_thread::sleep_for(s);
cout << "myThread() end thread id =" << this_thread::get_id() << endl;
return 5;
}
int main()
{
cout << "main run thread id =" << std::this_thread::get_id() << endl;
/* packaged_task 包装函数,执行线程,可以拿到线程的返回值,不知道工作中应用场景在哪,但是学都学了,得记下来 */
// 创建一个打包任务,把任务包装起来
std::packaged_task<int(int)> mypt(myThread);
std::thread t(std::ref(mypt), 121212);
t.join();
std::future<int> res = mypt.get_future();
cout << res.get() << endl;
cout << "main end" << endl;
return 0;
}