C++11 packaged_task,函数指针类型

std::string getData(std::string token) 
{
	std::string data = "Data :" + token;
	return data;
}
int main()
{
    // 创建封装回调的packaged_task<函数指针>
	std::packaged_task task(getDataFromDB);
	////从package_task<>获取相关的future<>
	std::future result = task.get_future();
	//将packaged_task传递给线程以异步运行
	std::thread th(std::move(task), "Arg");
	// join,阻塞到线程完成时返回
	th.join();
	// 获取packaged_task<>的结果,即getDataFromDB()的返回值
	std::string data = result.get();
	std::cout << data << std::endl;
}

你可能感兴趣的:(Cpp)