如何使用boost::asio::io_service在c++ 11线程之间调度作业

How to use boost::asio::io_service to dispatch jobs between C++11 threads

本文关键字:c++ 线程 之间 调度作业 boost 何使用 asio io service      更新时间:2023-10-16

我需要在多核架构上执行大量相对较短的任务。为此,我想使用固定大小的线程池和一些可靠的执行器实现。

我正在阅读关于boost::asio和io_service在这篇文章中如何在c++中使用boost创建线程池?但这使用boost线程,而在我的代码的许多地方使用c++11 thread_local修饰符局部变量(出于性能原因),因此我想我被迫使用c++11线程。

boost线程实现是否与c++11 thread_local变量兼容?

在c++11线程中使用io_service::run方法是否安全,而不是boost::thread?

在c++11线程中使用io_service::run方法是否安全,而不是boost::thread?

是的,我使用std::threadboost::asio,它工作得很好。我也用std::bind代替boost::bind。你可以在这里找到一个例子

boost线程实现是否与c++11 thread_local变量兼容?

我不知道这个,但是如果你使用std::thread

应该是无关的