taskflow:多线程并行任务

文章目录

一、taskflow

首先taskflow是基于graph的,每个独立的task只能在单核单线程上运行,可以看成一个执行单元。

task之间可以并行,那么taskflow和普通线程池的区别在于,可以给task之间添加依赖关系,比如taskA.precede(taskB) 表示taskB依赖taskA;

或者taskA.succeed(taskB) 表示taskA依赖taskB; (这个等价于taskB.precede(taskA))

把每个task看成节点,依赖关系看成有向边,可以画出task

但是注意这个图不能有环形依赖;这个可以通过拓扑排序校验。

那么构建了这个依赖关系之后,taskflow的能力就是可以在尽可能多的并行处理前提下,保证有依赖的任务之间的调用顺序。

例如:B依赖A依赖S;那么taskflow会保证 B执行之前,A,S都已经指向完毕。

二、SunTaskFlow

参考

相关推荐
YYYing.7 分钟前
【Linux/C++进阶篇 (一)】man手册、gdb调试、静态库与动态库
linux·运维·c++
孞㐑¥9 分钟前
算法—模拟
c++·经验分享·笔记·算法
2401_8914504612 分钟前
C++中的职责链模式实战
开发语言·c++·算法
m0_7088309613 分钟前
C++中的原型模式变体
开发语言·c++·算法
Trouvaille ~17 分钟前
【Linux】Linux线程概念与控制(四):glibc源码剖析与实现原理
linux·运维·服务器·c++·操作系统·glibc·线程控制
热爱编程的小刘18 分钟前
Lesson02---类与对象(上篇)
开发语言·c++
王老师青少年编程20 分钟前
2025信奥赛C++提高组csp-s复赛真题及题解:社团招新
c++·真题·csp·信奥赛·csp-s·提高组·复赛
橘子师兄25 分钟前
C++AI大模型接入SDK—Ollama本地接入Deepseek
c++·人工智能·后端
程序猿编码28 分钟前
深入浅出Linux内核级防火墙:IP/端口黑白名单的高性能实现
linux·c语言·c++·tcp/ip·内核
不染尘.38 分钟前
二分算法(优化)
开发语言·c++·算法