本文将介绍基本的packaged_task的用法:
看完上述代码后一定有疑问:
为什么要有packaged_task?
解答:上文的线程通信代码如下:
功能主要是做了求两数之和,然而一般情况下,我们并不习惯这样编写子函数,更习惯直接return x+y; 所以有了packaged_task。
其主要作用是简化对子函数的要求。
下面对四行代码进行解释:
首先使用函数模板类:创建一个对象,是一个任务包。这个任务包是未来(future)的基础。然后建立用函数模板类建立future类。之后建立future和packaged_task的联系。
之后创建线程,move的目的是将pkt这一个类转移到t线程里面去。
当然:也可以用lambda表达式来实现类似的任务,