Advertisement

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)

还没有任何评论哟~