小编Isa*_*ine的帖子

将 boost::asio::post 用于接受参数的函数

我是使用 boost 和线程池的新手。我想将一个函数传递给一个将变量作为参数的线程池。在这个简单的例子中,我只是传入一个整数。我的理解是 post 将调用线程池中的可用线程来执行某些操作。如果我将 printProduct 设置为不接受任何变量,代码就会编译,但这不是我最终想要做的。

参考相关文档会很有帮助(我还没有成功找到很多关于 boost::asio::post 的讨论),以及如何解决问题的建议。谢谢!

#include <cstdlib> 
#include <iostream>
#include <pthread.h>
#include <boost/version.hpp>    // version is 1.72
#include <boost/asio.hpp>
#include <boost/asio/io_service.hpp>
#include <boost/bind.hpp>
#include <boost/thread/thread.hpp>
#include <boost/thread/thread_pool.hpp>
#include <boost/asio/thread_pool.hpp>
#include <boost/asio/post.hpp>
#include <boost/lockfree/queue.hpp>

using namespace std;

int printProduct(int endval){
    // int endval = 1000000;
    int prod = 1;
    for (int i=0;i<endval;i++){
        prod = prod * i;
    }
    return prod;
}


int main() {

    boost::asio::thread_pool tp(8);

    for (int i =0; i<200; i++){
        // issue is how …
Run Code Online (Sandbox Code Playgroud)

c++ multithreading boost boost-asio threadpool

0
推荐指数
1
解决办法
3014
查看次数

标签 统计

boost ×1

boost-asio ×1

c++ ×1

multithreading ×1

threadpool ×1