首页 > 解决方案 > boost::asio 中的 post 和 dispatch 有什么区别?

问题描述

我正在尝试使用boost:asio库来创建线程池。官方文档说:

dispatch : 请求 io_service 调用给定的处理程序。

post:请求 io_service 调用给定的处理程序并立即返回。

有人可以解释这两者有何不同吗?

标签: c++multithreadingboost-asiothreadpoolasio

解决方案


不同之处在于dispatch可以在其中运行handlerCompletionHandler传递给它),这意味着您将等待它完成,如果它完成,则在函数返回之前。 post另一方面,不会自行运行handler并立即返回调用站点。

因此,dispatch是一个潜在的阻塞调用,post而是一个非阻塞调用。


推荐阅读