任务流、线程池推荐

任务流:

线程池:

 

【Taskflow教程】

Modern C++ Parallel Task Programming | Taskflow QuickStart

C++高性能编程——Taskflow并行框架 - 知乎

dot任务图查看网址 https://dreampuf.github.io/GraphvizOnline/

 

【简单使用】

官网下载taskflow

CMakeLists.txt

cmake_minimum_required(VERSION 3.27)
project(untitled1)

set(CMAKE_CXX_STANDARD 17)

include_directories(D:/down/taskflow)

add_executable(${PROJECT_NAME} main.cpp)

main.cpp

复制代码
#include <iostream>
#include "taskflow/taskflow.hpp"
int main() {
    tf::Taskflow taskflow;  //创建任务图
    tf::Task A=taskflow.placeholder();  //创建一个没有工作内容的占位符任务 A
    tf::Task B=taskflow.emplace([](){std::cout<<"task B\n";});  //创建任务 B
    //使用 C++ 结构化绑定一次创建多个任务 D, E, F
    auto [D,E,F]=taskflow.emplace(
            [](){std::cout<<"task D\n";},
            [](){std::cout<<"task E\n";},
            [](){std::cout<<"task F\n";}
            );

    A.precede(B);
    B.precede(D,E,F);

    //查看下任务图,将终端代码复制到网页查看。https://dreampuf.github.io/GraphvizOnline/
    A.name("A");//各任务名,否则显示线程号
    B.name("B");
    D.name("D");
    E.name("E");
    F.name("F");
    taskflow.dump(std::cout);

    //执行任务图
    tf::Executor executor;
    executor.run(taskflow).wait();

    return 0;
}
复制代码

 

 

posted @   夕西行  阅读(15)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?
历史上的今天:
2020-12-28 MFC 图在PictureControl控件的中间显示,像素在控件中的坐标
2019-12-28 C++理念——类与类
点击右上角即可分享
微信分享提示