1. <strong id="7actg"></strong>
    2. <table id="7actg"></table>

    3. <address id="7actg"></address>
      <address id="7actg"></address>
      1. <object id="7actg"><tt id="7actg"></tt></object>

        cocoflow并發(fā)流程控制

        聯(lián)合創(chuàng)作 · 2023-09-29 13:46

        Concurrency Control Flow 并發(fā)流程控制

        一個基于協(xié)程和libuv的C++框架,僅通過 start、 await、 all_ofany_of 控制流程。

        • 基于 協(xié)程(Coroutine) & libuv 的C++開發(fā)框架
        • 使用 start | await | all_of | any_of 四個原語控制流程
        • 同步的用戶接口 & 異步的運行過程
        • 阻塞只是hold住運行狀態(tài)然后切換
        • 任何操作都不會真正阻塞線程
        • 支持 Linux & Windows
        • 提供 sleep sync udp tcp 等預(yù)設(shè)任務(wù)

        任務(wù)

        • 并發(fā)流程中最小的控制單元
        • 一段邏輯上可能阻塞的過程視為任務(wù)

        原語

        start —— 異步地執(zhí)行一個<任務(wù)>,該過程不阻塞當(dāng)前任務(wù)的執(zhí)行,目標(biāo)任務(wù)啟動后立即繼續(xù)
        await —— 同步地執(zhí)行一個<任務(wù)>,該過程會阻塞當(dāng)前任務(wù)的執(zhí)行,等待目標(biāo)任務(wù)執(zhí)行完成后繼續(xù)
        all_of —— 將多個<任務(wù)>組合為一個新的任務(wù),全部任務(wù)執(zhí)行完成后新的任務(wù)視為執(zhí)行完成

        any_of —— 將多個<任務(wù)>組合為一個新的任務(wù),任一任務(wù)執(zhí)行完成后新的任務(wù)視為執(zhí)行完成,同時會取消掉其他未執(zhí)行完成的任務(wù)

        示例:你需要等待兩個udp的recv事件,并且需要設(shè)置一個超時時間,則你可以用使用:

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

         

        瀏覽 28
        點贊
        評論
        收藏
        分享

        手機掃一掃分享

        編輯 分享
        舉報
        評論
        圖片
        表情
        推薦
        點贊
        評論
        收藏
        分享

        手機掃一掃分享

        編輯 分享
        舉報
        1. <strong id="7actg"></strong>
        2. <table id="7actg"></table>

        3. <address id="7actg"></address>
          <address id="7actg"></address>
          1. <object id="7actg"><tt id="7actg"></tt></object>
            东京热免费观看 | 青娱乐国产在线视频 | 日韩18禁网站 | 在线无.码 | 神马伦理片在线观看 | 嗯啊灬别停啊灬用力灬快小喜 | 干女人网 | 天天综合欧美 | 性爱中文字幕 | 国产一级片自拍 |