当使用C ++ future调用函数时,如果我定义2个未来对象a,b
并调用相同的函数foo
a = async(launch::async,foo);
b = async(launch::async,foo);
是否与运行该功能两次相同?
foo()
foo()
即。是a
和b
分别运行foo
的私人副本?
答案 0 :(得分:0)
它们使用与此示例所示相同的功能。
void foo()
{
static int counter=0;
cout<<counter++<<endl;
return;
}
int main()
{
std::future<void> resultA(async(launch::async,foo));
resultA.get();
std::future<void> resultB(async(launch::async,foo));
resultB.get();
return 0;
}
输出:
0
1
这表明使用相同的静态计数器变量bcz输出不是0,0而是0, 1 (随着进入foo而递增)
希望有所帮助,