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

参考

相关推荐
敲代码的瓦龙8 分钟前
C++?继承!!!
c语言·开发语言·c++·windows·后端·算法
恒者走天下1 小时前
让学习回归到技术上来(技术 !=== 死记硬背)
c++
linux开发之路1 小时前
【备战秋招】C++音视频开发经典面试题整理
c++·ffmpeg·音视频·rtmp·音视频编解码
小吴同学·2 小时前
OPC Client第5讲(wxwidgets):初始界面的事件处理;按照配置文件初始化界面的内容
c++·wxwidgets
虾球xz3 小时前
游戏引擎学习第314天:将精灵拆分成多个层
linux·c++·学习·游戏引擎
会开花的二叉树3 小时前
vector的实现
数据结构·c++·算法·stl
序属秋秋秋4 小时前
《数据结构初阶》【番外篇:快速排序的前世今生】
c语言·数据结构·c++·笔记·leetcode·排序算法
CodeWithMe4 小时前
【C/C++】红黑树学习笔记
c语言·c++·学习
天赐细莲4 小时前
(C++17) 未捕获异常 uncaught_exceptions
开发语言·c++
Despacito0o6 小时前
C++面向对象编程实战:继承与派生全解析
开发语言·c++