首页 > 解决方案 > 使用具有参数的成员函数启动线程

问题描述

我想创建一个std::thread具有成员函数callReverse和其他 2 个类threadedName。很清楚如何为不带参数的函数执行此操作并从此 StackOverflow 问题启动线程与成员函数返回 void 对带参数的函数执行相同操作的正确方法是什么?这可以用于返回一些非空值的函数吗?

#include <bits/stdc++.h>
#include <thread>
using namespace std;
class threadedName
{
    // class body
    void callPermute()
    {  // function body 
    }
    void callReverse(char s[])
    {  // function body  
    }
    void callRearrange(char s[])
    { // function body  
    }
};
int main()
{
    threadedName ob;
    // doing something

    thread td1(&threadedName::reverseWords, &ob);
    thread td2(&threadedName::callPermute, &ob);
    thread td3(&threadedName::callRearrange, &ob);

    td3.join();
    td2.join();
    td1.join();

    return 0;
}

标签: c++multithreadingclasspthreadsmember-function-pointers

解决方案


推荐阅读