stl-thread-003

以package線程包,封裝函數的方式,使一個函數通常(但不一定)運行於某一分離線程中:

#include<thread>
#include<future>
#include<iostream>
using std::cout;
using std::endl;

double calc(double x, double y)
{
    return x + y;
}

int main()
{
    std::packaged_task<double(double, double)> task(calc);//用package線程 包裝函數;
    std::future<double>f = task.get_future();
    task(7.0, 2.5);
    cout << "result is:" << f.get() << endl;//結果也只能get取一次,取多次會有異常;

    getchar();
    getchar();
    return 0;
}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章