DoubleLi

qq: 517712484 wx: ldbgliet

  博客园 :: 首页 :: 博问 :: 闪存 :: 新随笔 :: 联系 :: 订阅 订阅 :: 管理 ::
  4737 随笔 :: 2 文章 :: 542 评论 :: 1615万 阅读
< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5

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

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

test_asio_nowork()执行结果:

[cpp] view plain copy
 
 print?
  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()的执行结果:

[cpp] view plain copy
 
 print?
  1. 2013-01-05 22:43:48 514 [7852] DEBUG - ios before  
  2.    

没有任务时, 也会阻塞.

posted on   DoubleLi  阅读(871)  评论(0编辑  收藏  举报
编辑推荐:
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
阅读排行:
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 单线程的Redis速度为什么快?
· SQL Server 2025 AI相关能力初探
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 展开说说关于C#中ORM框架的用法!
历史上的今天:
2014-08-29 Fedora20安装完Nvidia后启动一直黑屏解决办法。
2013-08-29 为什么在DllMain里不能调用LoadLibrary和FreeLibrary函数?
2012-08-29 Navicat for Oracle Cannot load OCI DLL
点击右上角即可分享
微信分享提示