<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          ProtothreadsC 語言封裝的輕量線程環(huán)境

          聯(lián)合創(chuàng)作 · 2023-09-28 20:43

          Protothreads 是一種針對 C 語言封裝后的宏函數(shù)庫,為 C 語言模擬了一種無堆棧的輕量線程環(huán)境,能夠?qū)崿F(xiàn)模擬線程的條件阻塞、信號量操作等操作系統(tǒng)中特有的機制,從而使程序?qū)崿F(xiàn)多線程操作。

          每個 Protothreads 線程僅增加 10 行代碼和 2 字節(jié)RAM的額外硬件資源消耗。對于資源緊缺而不能移植嵌入式操作系統(tǒng)的嵌入式系統(tǒng),使用 Protothreads 能夠方便直觀地設計多任務程序,能夠?qū)崿F(xiàn)用線性程序結(jié)構(gòu)處理事件驅(qū)動型程序和狀態(tài)機程序,簡化了該類程序的設計。

          示例代碼:

          #include "pt.h"
           
          struct pt pt;
          struct timer timer;
           
          PT_THREAD(example(struct pt *pt))
          {
            PT_BEGIN(pt);
           
            while(1) {
              if(initiate_io()) {
                timer_start(&timer);
                PT_WAIT_UNTIL(pt,
                   io_completed() ||
                   timer_expired(&timer));
                read_data();
              }
            }
            PT_END(pt);
          }


          瀏覽 29
          點贊
          評論
          收藏
          分享

          手機掃一掃分享

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

          手機掃一掃分享

          編輯 分享
          舉報
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  久久久久久欧美二区电影网 | 欧美日韩国产中文字幕 | 国精产品一品二品国精 | 欧美一级网 | 香蕉久久国产AV一区二区 |