【Boost】boost库asio详解1——io_service::run函数无任务时退出的问题
2016-02-29 10:09
253 查看
io_service::work类可以使io_service::run函数在没有任务的时候仍然不返回,直至work对象被销毁。
[cpp] view
plain copy
print?
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()执行结果:
[cpp] view
plain copy
print?
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()的执行结果:
[cpp] view
plain copy
print?
2013-01-05 22:43:48 514 [7852] DEBUG - ios before
没有任务时, 也会阻塞.
[cpp] view
plain copy
print?
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()执行结果:
[cpp] view
plain copy
print?
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()的执行结果:
[cpp] view
plain copy
print?
2013-01-05 22:43:48 514 [7852] DEBUG - ios before
没有任务时, 也会阻塞.
相关文章推荐
- 子元素用了float浮动之后,如何撑开父元素,让父元素div自动适应高度的问题
- 微信js-sdk分享,修改分享内容及链接
- Centos 下升级python
- 【服务器架构】MMORPG 常用架构介绍
- 108. Convert Sorted Array to Binary Search Tree
- Jquery easyui从零单排之datagrid整表编辑保存到数据库
- 百度地图API学习笔记(三)
- 快速查找出现一次的数字
- 全排列
- Android布局— — —表格布局
- Java中的继承、封装、多态、抽象
- 罗森伯格喜获腾讯2015年优秀供应商奖
- 使用Android Studio与ArcGIS Android SDK的开发环境部署和HelloWorld
- 单例
- bzoj3926 诸神眷顾的幻想乡 后缀自动机
- 初识react
- Android ViewPager 小圆点指示器
- MyCat源码分析系列之——BufferPool与缓存机制
- apache的proxy代理总访问后端web的第一个虚拟主机
- 脑洞大开之采用HTML5+SignalR2.0(.Net)实现原生Web视频