【Boost】boost库asio详解2——io_service::run函数无任务时退出的问题
io_service::work类可以使io_service::run函数在没有任务的时候仍然不返回,直至work对象被销毁。
- void test_asio_nowork()
- {
- boost::asio::io_service ios;
- PRINT_DEBUG("ios before");
- ios.run();
- PRINT_DEBUG("ios end");
- }
- void test_asio_work()
- {
- boost::asio::io_service ios;
- // 增加一个work对象
- boost::asio::io_service::work work(ios);
- PRINT_DEBUG("ios before");
- // 当没有任务时,ios.run()也不会马上返回
- ios.run();
- PRINT_DEBUG("ios end");
- }
test_asio_nowork()执行结果:
- 2013-01-05 22:43:19 334 [4868] DEBUG - ios before
- 2013-01-05 22:43:19 341 [4868] DEBUG - ios end
test_asio_work()的执行结果:
- 2013-01-05 22:43:48 514 [7852] DEBUG - ios before
没有任务时, 也会阻塞.
【Boost】boost库asio详解2——io_service::run函数无任务时退出的问题相关推荐
- 【Boost】boost库asio详解1——io_service::run函数无任务时退出的问题
io_service::work类可以使io_service::run函数在没有任务的时候仍然不返回,直至work对象被销毁. [cpp] view plain copy print? void t ...
- 【Boost】boost库asio详解3——io_service作为work pool
无论如何使用,都能感觉到使用boost.asio实现服务器,不仅是一件非常轻松的事,而且代码很漂亮,逻辑也相当清晰,这点上很不同于ACE. 使用io_service作为处理工作的work pool,可 ...
- 【Boost】boost库asio详解9——TCP的简单例子2
客户端: // Client.cpp : 定义控制台应用程序的入口点. //#include "stdafx.h" #include <iostream> #inclu ...
- 【Boost】boost库asio详解8——TCP的简单例子1
摘于boost官网的几个例子, 做了点小修改, 笔记之. 同步客户端 [cpp] view plain copy print? void test_asio_synclient() { typede ...
- 【Boost】boost库asio详解7——boost::asio::buffer用法
1. asio::buffer常用的构造方法 asio::buffer有多种的构造方法,而且buffer大小是自动管理的 1.1 字符数组 [cpp] view plain copy print? ...
- 【Boost】boost库asio详解4——deadline_timer使用说明
deadline_timer和socket一样,都用io_service作为构造函数的参数.也即,在其上进行异步操作,都将导致和io_service所包含的iocp相关联.这同样意味着在析构 io_s ...
- 【Boost】boost库asio详解2——strand与io_service区别
[cpp] view plain copy print? namespace { // strand提供串行执行, 能够保证线程安全, 同时被post或dispatch的方法, 不会被并发的执行. ...
- 【Boost】boost库asio详解1——strand与io_service区别
namespace {// strand提供串行执行, 能够保证线程安全, 同时被post或dispatch的方法, 不会被并发的执行. // io_service不能保证线程安全boost::asi ...
- 【Boost】boost库asio详解9——UDP的简单例子1
服务器: #include "stdafx.h" #include <iostream> #include <boost/asio.hpp> #includ ...
最新文章
- sqlserver清除日志
- cmd文件打开闪退_批处理闪退、运行中断等问题的处理
- 这样也可以,insert,,
- python中list是什么意思_python中list和list [:]有什么区别?
- JAVA程序设计----java面向对象基础(下)
- python 倒叙 数组_Python函数合集:68个内置函数请收好!
- H5 video 开发问题及相关知识点
- HH SaaS电商系统的销售订单毛利润模块设计
- Spring整合Struts2的两种方式
- jsp中文乱码问题 个人感觉比较有用
- php中联合运算符,PHP-串联运算符
- [bzoj 1861][zjoi2006] 书架
- linux下运行二进制文件
- 很多网友反映QQ被盗
- c++语言计算圆周率,计算圆周率的C++程序(30000位)
- 智能穿戴:致我们触手可及的未来?
- 服务器断电mysql文件丢失_服务器断电了怎么恢复数据?
- c语言笔记本无法读取鼠标,USB鼠标失灵了怎么办 电脑无法识别USB鼠标【详解】...
- WINCE 睡眠与唤醒
- 模拟炒股服务器响应错误,模拟炒股常见问题
热门文章
- 超融合服务器虚拟化优缺点,超融合是什么 意思?为什么必须是软硬件一体?...
- oauth过滤login_OAuth2AuthenticationProcessingFilter资源认证服务器过滤器
- 微信python天天学_刚学Python一礼拜!我就能模拟登录微信公众号!我是天才吧!...
- Android10剪贴板,剪纸堆 Clip Stack - 轻量级剪贴板管理程序(支持 Android 10)
- ssd测试软件cy,目标检测实践_tensorflow版SSD模型测试
- 声音大小与振幅的关系_原来声音的属性有这三种!
- 四路服务器芯片组,四路服务器主板配置
- 基于ESP32的竞赛裁判系统功能调试-与微机通讯
- 2021年春季学期-信号与系统-第十一次作业参考答案-第一小题
- 电磁炉线圈初步谐振实验 - 无线信标线圈