cocoflow 并发流程控制开源项目

我要开发同款
匿名用户2013年10月21日
83阅读
所属分类C/C++、程序开发、并发/并行处理框架
授权协议LGPL

作品详情

ConcurrencyControlFlow并发流程控制

一个基于协程和libuv的C++框架,仅通过start、await、all_of、any_of控制流程。

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

任务

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

原语

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

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

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

await(any_of(all_of(udp0.recv,udp1.recv),sleep(xms)))

 

声明:本文仅代表作者观点,不代表本站立场。如果侵犯到您的合法权益,请联系我们删除侵权资源!如果遇到资源链接失效,请您通过评论或工单的方式通知管理员。未经允许,不得转载,本站所有资源文章禁止商业使用运营!
下载安装【程序员客栈】APP
实时对接需求、及时收发消息、丰富的开放项目需求、随时随地查看项目状态

评论