网站建设项目的摘要,南宁关键词优化软件,桂林官网,本地服务推广平台哪个好本文主要介绍 std::packaged_task。 std::packaged_task 包装一个可调用的对象,并且允许异步获取该可调用对象产生的结果,从包装可调用对象意义上来讲,std::packaged_task 与 std::function 类似,只不过 std::packaged_task 将其包装的可调用对象的执行结果传递给一个 std:… 本文主要介绍std::packaged_task。 std::packaged_task包装一个可调用的对象,并且允许异步获取该可调用对象产生的结果,从包装可调用对象意义上来讲,std::packaged_task与std::function类似,只不过std::packaged_task将其包装的可调用对象的执行结果传递给一个std::future对象(该对象通常在另外一个线程中获取std::packaged_task任务的执行结果)。 std::packaged_task对象内部包含了两个最基本元素,一、被包装的任务(stored task),任务(task)是一个可调用的对象,如函数指针、成员函数指针或者函数对象,二、共享状态(shared state),用于保存任务的返回值,可以通过std::future对象来达到异步访问共享状态的效果。 可以通过std::packged_task::get_future来获取与共享状态相关联的std::future对象。在调用该函数之后,两个对象共享相同的共享状态,具体解释如下: std::packaged_task对象是异步 Provider,它在某一时刻通过调用被包装的任务来设置共享状态的值。std::future对象是一个异步返回对象,通过它可以获得共享状态的值,当然在必要的时候需要等待共享状态标志变为ready