微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

cocoflow 并发流程控制

程序名称:cocoflow

授权协议: LGPL

操作系统: Windows

开发语言: C/C++

cocoflow 介绍

Concurrency Control Flow 并发流程控制

一个基于协程和libuv的C++框架,仅通过 startawait
all_ofany_of 控制流程。

  • 基于 协程(Coroutine) & libuv 的C++开发框架
  • 使用 start | await | all_of | any_of 四个原语控制流程
  • 同步的用户接口 & 异步的运行过程
  • 阻塞只是hold住运行状态然后切换
  • 任何操作都不会真正阻塞线程
  • 支持 Linux & Windows
  • 提供 sleep sync udp tcp 等预设任务

任务

  • 并发流程中最小的控制单元
  • 一段逻辑上可能阻塞的过程视为任务

原语

start —— 异步地执行一个<任务>,该过程不阻塞当前任务的执行,目标任务启动后立即继续
await —— 同步地执行一个<任务>,该过程会阻塞当前任务的执行,等待目标任务执行完成后继续
all_of —— 将多个<任务>组合为一个新的任务,全部任务执行完成后新的任务视为执行完成

any_of —— 将多个<任务>组合为一个新的任务,任一任务执行完成后新的任务视为执行完成,同时会取消掉其他未执行完成的任务

示例:你需要等待两个udp的recv事件,并且需要设置一个超时时间,则你可以用使用:

await(
    any_of(
        all_of(
            udp0.recv,
            udp1.recv
        ),
        sleep(x ms)
    )
)

cocoflow 官网

https://github.com/chishaxie/cocoflow

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐