post()会将Handler加入到任务队列中,然后在调用了run()、run_one()、 poll()、 poll_one()的线程中执行。

dispatch()会先进行判断,如果执行dispatch的线程之后就会调用run()、run_one()、 poll()、 poll_one(),那么直接在当前线程执行。否则同post()。

官方解释如下:

io_service::post
Request the io_service to invoke the given handler and return immediately.

This function is used to ask the io_service to execute the given handler, but without allowing the io_service to call the handler from inside this function.

The io_service guarantees that the handler will only be called in a thread in which the run(), run_one(), poll() or poll_one() member functions is currently being invoked.

io_service::dispatch
Request the io_service to invoke the given handler.

This function is used to ask the io_service to execute the given handler.

The io_service guarantees that the handler will only be called in a thread in which the run(), run_one(), poll() or poll_one() member functions is currently being invoked. The handler may be executed inside this function if the guarantee can be met.

Boost Asio dispatch()与post()的区别相关推荐

  1. boost boost::asio::read socket.read_some 区别

    boost boost::asio::read 尝试读一定数量的字节,直到读到为止,或者出错 socket.read_some 读一下socket,读到多少算多少 带async的类似 出处:http: ...

  2. boost asio io_service学习笔记

    转自:http://hi.baidu.com/jrckkyy/blog/item/e86835d61e60722506088b6a.html 构造函数 构造函数的主要动作就是调用CreateIoCom ...

  3. Boost asio 官方教程简介

    1. 概述 本章介绍了 Boost C++ 库 Asio,它是异步输入输出的核心. 名字本身就说明了一切:Asio 意即异步输入/输出. 该库可以让 C++ 异步地处理数据,且平台独立. 异步数据处理 ...

  4. Boost.ASIO简要分析-4 多线程

    4. 多线程 一般情况下,服务端开启一条线程做io_service::run()工作就足够了.但是,有些情况下可能会变得很糟糕. 从之前的分析,我们知道异步操作的一个关键步骤就是io_service回 ...

  5. boost::asio::deadline_timer(理解)

    并发与并行: 并发和并行从宏观上来讲都是同时处理多路请求的概念.但并发和并行又有区别,并行是指两个或者多个事件在同一时刻发生:而并发是指两个或多个事件在同一时间间隔内发生. 1.Timer.1 - 使 ...

  6. boost asio 学习

    本章节为io_service添加任务,并且区分dispatch与post的区别.如果说io_service是asio库的大脑,那么post与dispatch就是asio库的手和脚. #include ...

  7. boost asio 应用方法学(二)——深入框架

    要用好它,就必须先了解它,而且不能停止于表面,必须深入到内部.而了解一件事物,先要了解它的框架,再了解它的细节.了解了框架,我们就有了提纲挈领的认识. 关于 boost asio 框架结构,在其文档中 ...

  8. boost::asio译文

    boost::asio译文 Christopher Kohlhoff Copyright © 2003-2012 Christopher M. Kohlhoff 以Boost1.0的软件授权进行发布( ...

  9. boost asio 异步实现tcp通讯

    一.前言 boost asio可算是一个简单易用,功能又强大可跨平台的C++通讯库,效率也表现的不错,linux环境是epoll实现的,而windows环境是iocp实现的.而tcp通讯是项目当中经常 ...

  10. Boost.Asio技术文档汇总

    Christopher Kohlhoff Copyright © 2003-2012 Christopher M. Kohlhoff 以Boost1.0的软件授权进行发布(见附带的LICENSE_1_ ...

最新文章

  1. cv2.circle函数
  2. websocket receive方法内 有循环怎么退出_认识HTML5的WebSocket
  3. 从“不务正业”到“回归本行”,“中年”雅戈尔的偶然与必然
  4. myeclipse + tomcat 项目自动部署
  5. 五十六、教用Python中的turtle海龟画图(上篇)
  6. JMetro版本11.6.5和8.6.5发布
  7. C/C++中NULL指针
  8. 前端学习(1857)vue之电商管理系统电商系统之配置api接口服务器并用postman调试接口
  9. Linux Shell脚本入门教程系列之(二)第一个shell脚本
  10. 2017.10.10 杀人游戏 思考记录
  11. 从h264码流中获取图像的宽高---版本1 (移植于ffmpeg)
  12. 十多年前的 Adobe ColdFusion 漏洞被用于勒索攻击
  13. linux下文本处理
  14. Java访问剪切板API控制台输出莫名异常
  15. 博图/博途(TIA)V13 V14 V15 V16 软件安装教程,适用于新手的傻瓜式安装方法,强推!!!!
  16. 采用WPF开发第二版OFD阅读器,持续完善中,敬请期待
  17. 天池大数据竞赛 Spaceack带你利用Pandas,趋势图与桑基图分析美国选民候选人喜好度
  18. leetcode:94. 二叉树的中序遍历
  19. 6.13编一程序,将两个字符串连接起来,不要用strcat函数。
  20. 神武4最新服务器,神武4手游 角色转服扩大限服范围

热门文章

  1. Tomcat 服务器状态监控显示PS Survivor Space 99%
  2. Conflux吐槽君:IOTA物联网电磁炉-让PoW的耗电没有遗憾
  3. virtualbox中给CentOS根分区扩容的方法
  4. 安装部署shipyard
  5. Linux的网络安装
  6. C语言中字符串存储方法
  7. oracle 查询判断语句
  8. 11.深入分布式缓存:从原理到实践 --- Aerospike原理及广告业务应用
  9. 7.jenkins 发布邮件
  10. 24. jQuery 细节