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 ,作为参数。

One Solution collect form web for “std ::线程调用类的方法”

不那么难:

 #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(); } 
  • 无锁algorithm是否真的比locking对象更好?
  • Thread.Sleep(1)是否特殊?
  • 在Bashmultithreading
  • 在Javascript中执行后台任务
  • C + + 11:std ::线程池?
  • Python支持multithreading吗? 它可以加快执行时间吗?
  • reactjs中的setState是asynchronous或同步
  • 每n秒运行一段代码
  • C#数组是否线程安全?
  • 使用同步方法而不是同步块是否有优势?
  • 在multithreading场景中调用Dictionary对象的set_item方法时抛出NullReferenceException