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

马纳萨

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

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

在这种情况下,如何修改代码以使所有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

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何在Visual Studio 2019中创建Xamarin PCL项目

如何在 Visual Studio 2019 中创建 DSL 工具项目?

如何在Visual Studio 2019中创建Azure函数?

如何在 Visual Studio 2019 中使用 C#10

如何在Visual Studio 2019中使用SSDT创建系统版本表?

如何在 Visual Studio 2019 中添加 Google MyBusiness C# 客户端库

如何在Visual Studio 2019中为C#Azure Functions zip部署创建.zip文件?

如何在Visual Studio 2019中仅编译一个C文件?

如何在 Visual Studio 2019 中强制推送?

如何在Visual Studio 2017/2019中获取终端窗口?

如何在Visual Studio 2019中更新IntelliCode模型?

如何在 Visual Studio 2019 中更新 Gradle

如何在Visual Studio 2019中添加对PresentationCore的引用?

如何在Visual Studio 2019中定位Android 4.1?

如何在Visual Studio 2019中查看拉取请求?

如何在Visual Studio 2019中更改%(DisableSpecificWarnings)

如何在 Visual Studio 2019 中調試 Chromium?

如何在 Visual Studio 2019 for mac 中搭建身份文件?

如何在Visual Studio 2019中选择Visual C#类模板?

如何在Visual Studio 2019中启用c ++ 20(16.3预览版4)

如何在Visual Studio 2019中有条件地编译c ++源文件?

如何在Visual Studio 2019 for C ++中更改关键字``for,if,return''的字体颜色?

如何在Visual Studio 2019中更改默认的C ++语言标准?

如何在Visual Studio 2019 16.8.1中创建.Net 5.0类库项目?

如何在Visual Studio 2019中使用.NET 4.6.2版运行单元测试?

如何在Visual Studio 2019中使用git bash终端配置文件?

在Visual Studio 2019中C#类库的导出失败

如何在Visual Studio 2010中使用Boost

在Visual Studio 2019中组织C#使用?