我正在提交多个任务以同时增强boost :: asio :: thread_pool。但是官方文件没有讨论boost :: asio :: thread_pool的线程安全。
boost库版本为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);
所以我想知道代码是否可以在多个线程上工作
答案 0 :(得分:0)
boost::asio::post
使用执行程序将任务发布到线程池中。执行器要求在this link下进行了描述。
句子之一是
执行程序副本构造函数,比较运算符和其他成员 这些要求中定义的功能不得引入数据竞争 由于从不同的位置并发调用了这些函数 线程。
为确保您的代码安全,您可以从多个线程调用post
。