std ::线程调用类的方法
可能重复:
用成员函数启动线程
我有一个小class:
class Test { public: void runMultiThread(); private: int calculate(int from, int to); }
如何从方法runMultiThread()
中的两个线程calculate
两个不同的参数集(例如calculate(0,10)
, calculate(11,20)
runMultiThread()
?
PS谢谢,我已经忘记,我需要通过this
,作为参数。
不那么难:
#include <thread> void Test::runMultiThread() { std::thread t1(&Test::calculate, this, 0, 10); std::thread t2(&Test::calculate, this, 11, 20); t1.join(); t2.join(); }
如果仍然需要计算结果,请改用future :
#include <future> void Test::runMultiThread() { auto f1 = std::async(&Test::calculate, this, 0, 10); auto f2 = std::async(&Test::calculate, this, 11, 20); auto res1 = f1.get(); auto res2 = f2.get(); }