boost::asio 中的 post 和 dispatch 有什么区别?

ANI*_*VIT 5 c++ multithreading boost-asio asio threadpool

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

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

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

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

UKM*_*key 2

Post确保调用 post 的线程不会立即尝试处理该任务。

https://www.boost.org/doc/libs/1_47_0/doc/html/boost_asio/reference/io_service/post.html

但不允许 io_service 从此函数内部调用处理程序。

Dispatch 没有做出这样的承诺;并且可能在函数返回时完成。