io_service::work类可以使io_service::run函数在没有任务的时候仍然不返回,直至work对象被销毁。

  1. void test_asio_nowork()
  2. {
  3. boost::asio::io_service ios;
  4. PRINT_DEBUG("ios before");
  5. ios.run();
  6. PRINT_DEBUG("ios end");
  7. }
  8. void test_asio_work()
  9. {
  10. boost::asio::io_service ios;
  11. // 增加一个work对象
  12. boost::asio::io_service::work work(ios);
  13. PRINT_DEBUG("ios before");
  14. // 当没有任务时,ios.run()也不会马上返回
  15. ios.run();
  16. PRINT_DEBUG("ios end");
  17. }

test_asio_nowork()执行结果:

  1. 2013-01-05 22:43:19 334 [4868] DEBUG - ios before
  2. 2013-01-05 22:43:19 341 [4868] DEBUG - ios end

test_asio_work()的执行结果:

  1. 2013-01-05 22:43:48 514 [7852] DEBUG - ios before

没有任务时, 也会阻塞.

最新文章

  1. MongoDB 效率
  2. Android 强烈推荐:程序员接私活那点事
  3. 优化Google字体 全面加速WordPress
  4. SoapUI调用webservice实现的两种方式
  5. 浅谈SEO翻倍提升网站流量
  6. CSS样式“display:none”与“visibility:hidden”区别
  7. css页面点击文字出现蓝色底色去掉方法
  8. Windows 7 中设置VPN(PPTP连接方式)
  9. Apache配置文件httpd.conf内容翻译
  10. 关于mysql的基础知识
  11. 数据结构之平衡二叉树(AVL)
  12. C# login with cookie and fiddler2
  13. linux下查找文件和文件内容
  14. sort函数简单调用方法
  15. [Android] Upload package to device fails #2720
  16. hadoop伪分布式环境搭建
  17. Supervised Learning and Unsupervised Learning
  18. UNIX网络编程——分析一帧基于UDP的TFTP协议帧
  19. [摘录] 图灵机与lambda演算的关系
  20. Openlayer3之瓦片数据接入

热门文章

  1. vdWebControl.js去水印
  2. 数据库 ""和null的在java 持久化中的区别
  3. 邻接表的使用及和vector的比較
  4. C语言-回溯例2
  5. UUID随机字符串
  6. Android中Environment与StatFs获取系统/SDCard存储空间大小
  7. mysql 数据类型+约束+关联
  8. Logistic Regression 笔记与理解
  9. iOS移动开发周报-第17期
  10. undefined reference to libiconv_open ext/iconv/.libs/iconv.o by install phpsource