如何在 C++ 中使用 boost 库创建 3 个并行执行线程(Visual Studio 2019)?

How to create 3 threads of parallel execution using boost library in C++ (in Visual Studio 2019)?

我正在尝试使用 boost 库在 Visual Studio 2019 年创建 3 个执行线程。 3个线程函数各有一个while(1)循环,以保持连续执行。

但是,当我执行程序时,我看到只有第一个线程被执行(并且命中断点)。 所以我知道第一个线程正在创建,并且执行保留在第一个函数的 while(1) 循环内,其余 2 个线程未执行(未命中断点)。

在这种情况下,我该如何修改代码以获取所有 3 个线程运行?

使用的部分代码片段如下:

myfunction()
{
    // Some code here..

    boost::thread t(&myclass::kafkaSvc1ProducerThread, this, rk);
    t.join();

    boost::thread t2(&myclass::kafkaSvc2ProducerThread, this, rk);
    t2.join();

    boost::thread t3(&myclass::kafkaSvc3ProducerThread, this, rk);
    t3.join();

    // Some code here..
}

func1(1)
{
   while(1)
   { 
       // Some code here...
   }

}

void kafkaSvc1ProducerThread()
{
    func1();
}

func2(1)
{
   while(1)
   { 
       // Some code here...
   }

}

void kafkaSvc2ProducerThread()
{
    func2();
}

func3(1)
{
   while(1)
   { 
       // Some code here...
   }

}

void kafkaSvc3ProducerThread()
{
    func3();
}

推迟加入话题:

boost::thread t(&myclass::kafkaSvc1ProducerThread, this, rk);
boost::thread t2(&myclass::kafkaSvc2ProducerThread, this, rk);
boost::thread t3(&myclass::kafkaSvc3ProducerThread, this, rk);

t.join();
t2.join();
t3.join();

考虑使用 thread_group