cocoflow并發(fā)流程控制
Concurrency Control Flow 并發(fā)流程控制
一個基于協(xié)程和libuv的C++框架,僅通過 start、 await、 all_of、 any_of 控制流程。
- 基于 協(xié)程(Coroutine) & libuv 的C++開發(fā)框架
- 使用 start | await | all_of | any_of 四個原語控制流程
- 同步的用戶接口 & 異步的運行過程
- 阻塞只是hold住運行狀態(tài)然后切換
- 任何操作都不會真正阻塞線程
- 支持 Linux & Windows
- 提供 sleep sync udp tcp 等預設任務
任務
- 并發(fā)流程中最小的控制單元
- 一段邏輯上可能阻塞的過程視為任務
原語
start —— 異步地執(zhí)行一個<任務>,該過程不阻塞當前任務的執(zhí)行,目標任務啟動后立即繼續(xù)
await —— 同步地執(zhí)行一個<任務>,該過程會阻塞當前任務的執(zhí)行,等待目標任務執(zhí)行完成后繼續(xù)
all_of —— 將多個<任務>組合為一個新的任務,全部任務執(zhí)行完成后新的任務視為執(zhí)行完成
any_of —— 將多個<任務>組合為一個新的任務,任一任務執(zhí)行完成后新的任務視為執(zhí)行完成,同時會取消掉其他未執(zhí)行完成的任務
示例:你需要等待兩個udp的recv事件,并且需要設置一個超時時間,則你可以用使用:
await(
any_of(
all_of(
udp0.recv,
udp1.recv
),
sleep(x ms)
)
)
評論
圖片
表情
