Asio源码分析(2):Asio采用的C++技巧及优化
发布时间
阅读量:
阅读量
Asio源码分析(2):Asio用到的C++技巧和优化
文章目录
第2章 Asio源码分析:探讨C++中的技巧与优化策略
Asio采用了C++的一些手法和优化技术。初次阅读源码可能会感到困惑(confuse)。本文将简要介绍其中的一小块内容,并为后续深入探讨奠定基础。
使用析构函数执行清理操作
当实例销毁时执行清理操作的行为,在功能上类似于Go语言中使用的defer关键字。
Asio将负责管理一个用于不同线程之间通信的Operation队列;此外,该系统还会独立地维护每个线程独有的private Operation队列。在运行过程中完成的任务会被立即转移至private操作队列中;随后,在所有private操作完成之后,在后续阶段这些操作则会逐步转移到主操作队列上。
struct scheduler::task_cleanup {
~task_cleanup() {
if (this_thread_->private_outstanding_work > 0) {
asio::detail::increment(
scheduler_->outstanding_work_,
this_thread_->privat
全部评论 (0)
还没有任何评论哟~
