1 使用std::thread内部创建多线程函数

在有些应用场景下,需要在某个类中以某个成员函数作为异步线程函数,或者需要多线程去执行某个耗时操作的成员函数。在这种应用场景下,知道如何在类内部以成员函数创建多线程函数就是一个比较基础的问题。

1.1 代码示例

demo代码如下:

#include <iostream>
#include <thread>

class ThreadTest
{
public:
    ThreadTest()
    {

    }
    virtual~ThreadTest()
    {

    }

public:
    void StarThead()
    {
        std::thread t_thread(&ThreadTest::ThreadFunc, this);
        std::thread t_threadOneParam(&ThreadTest::ThreadFuncWithOneParam, this,1);
        std::thread t_threadTwoParam(&ThreadTest::ThreadFuncWithTwoParam, this, 1, 2);

        if (t_thread.joinable())
        {
            t_thread.join();
        }

        if (t_threadOneParam.joinable())
        {
            t_threadOneParam.join();
        }

        if (t_threadTwoParam.joinable())
        {
            t_threadTwoParam.join();
        }

    }

    void ThreadFunc()
    {
        std::cout << "ThreadFunc running" << std::endl;
    }

    void ThreadFuncWithOneParam(int a)
    {
        std::cout << "ThreadFuncWithOneParam running" << std::endl;
    }

    void ThreadFuncWithTwoParam(int a, int b)
    {
        std::cout << "ThreadFuncWithTwoParam" << std::endl;
    }

};

int main()
{
    ThreadTest thread_test;
    thread_test.StarThead();


    getchar();

    return 0;
}

执行结果:

C++11 – 使用std::thread在类内部以成员函数作为多线程函数执行异步操作-StubbornHuang Blog

如果您觉得对您有帮助,可以请站长喝一杯咖啡哦!

记得在赞赏备注里写上您的昵称

您可在本站资助名单中查看你的打赏记录哦!

支付宝扫一扫

微信扫一扫

金额随意,礼清义重

当前分类随机文章推荐

全站随机文章推荐

关于本站站长 StubbornHuang
C++11 – 使用std::thread在类内部以成员函数作为多线程函数执行异步操作-StubbornHuang Blog纵使晴明无雨色,入云深处亦沾衣。