
async++
文章平均质量分 83
学习async++记录
哎呦,帅小伙哦
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
async++库的使用示例
如前面的博客介绍的,这个库中提供了async::spawn方法,这个方法通常用来启动异步函数,这个框架会利用线程池去完成函数,因此要注意数据安全。正因为将任务放到了单独的线程执行,并且还有调度开销,因此简单的任务最好不要使用这种方法,得不偿失。原创 2025-01-22 23:03:42 · 1513 阅读 · 0 评论 -
async++源码阅读——parallel部分
internal_parallel_for 是一种并行化的循环执行函数,适用于在多个线程中并行执行对容器中每个元素应用相同操作的场景。每个线程处理容器的不同部分,执行相同的操作,典型的使用场景是遍历数组或集合。数据驱动:它的任务是对一个数据集(由 partitioner 提供)执行相同的操作,每个数据项执行相同的函数 func。任务拆分与并行:它会将数据分割成多个部分,并在多个线程中并行处理这些部分。如果无法再拆分,任务会在当前线程中顺序执行。原创 2025-01-15 19:20:26 · 656 阅读 · 0 评论 -
async++源码阅读——when_all和when_any
when_all:等待一组异步任务都完成。when_any:等待一组异步任务中的任意一个完成。这两个函数提供了更加灵活的异步操作控制,允许开发者在不同的场景下根据任务完成的条件来进行处理。原创 2025-01-15 19:19:11 · 394 阅读 · 0 评论 -
async++源码阅读——调度模块
在任何框架中,调度模块都是核心,所谓调度模块就是如何组织任务的执行,使其能代码自动完成添加任务,消费任务,唤醒主线程执行任务,正确的返回任务的状态。在阅读调度模块时,发现和sylar框架中的调度模块和httplib中的调度模块核心思想差不多,看来阅读源码还是非常有必要的,可以帮助我们快速的理解代码含义。本文章主要记录一些本人认为有必要复习的任务,不会像task模块添加那么详细的注释。原创 2025-01-14 12:19:31 · 814 阅读 · 0 评论 -
async++源码阅读——task模块
1、task_base.h本人将自己的理解以注释的形式添加的代码中,方便需要的时候重新复习。该文件中用到的一些技术:该文件中的类并没有使用virtual,而是自定义了需函数表,但是并没有放到每个对象的开始位置,而是通过指针进行存取。EBO技术,空类对象本来就占用一个字节的空间,为了节省空间,EBO就是利用这一个字节的空间存储信息对类成员指定内存对齐方式该框架中将一个任务设计成了func和result的组合,task_result用于保存任务的结果而func_holder保存真正执行的函数,而ta原创 2025-01-14 00:06:29 · 820 阅读 · 0 评论 -
async++源码阅读——基础模块
模板类,定义了数组,该类默认的成员内存对齐方式是根据模板参数T推导出来的,也可以根据需要人为的赋默认值。原创 2025-01-06 22:07:06 · 445 阅读 · 0 评论