是boost :: asio :: thread_pool线程在多个线程上发布任务时的安全性



我正在同时提交多个任务:: asio :: thread_pool。但是官方文档并未谈论boost :: asio :: thread_pool。

Boost Lib版本为1.69。和我的代码如下:

/*define a thread pool*/    
boost::asio::thread_pool pool(4);
//on thread 1
boost::asio::post(pool, my_task_1);
...
//on thread 2
boost::asio::post(pool, my_task_2);

所以我想知道可以在多个线程上使用的代码

boost::asio::post使用执行程序将任务发布到线程池中。执行人要求在此链接下描述。句子之一是

执行人复制构造函数,比较操作员和其他成员 这些要求中定义的功能不得引入数据竞赛 由于同时呼叫来自不同的功能 线程。

因此,您的代码是安全的,您可以从多个线程调用post

最新更新