Protothreads是一種針對C語言封裝後的宏函式館,為C語言模擬了一種無堆疊的輕量執行緒環境,能夠實現模擬執行緒的條件阻塞、信號量操作等作業系統中特有的機制,從而使程式實現多執行緒操作。
基本介紹
- 外文名:Protothreads
- 針對:C語言
- 類型:宏函式館
- 屬性:一種無堆疊的輕量執行緒環境
簡介,示例代碼,
簡介
每個Protothreads執行緒僅增加10行代碼和2位元組RAM的額外硬體資源消耗。對於資源緊缺而不能移植嵌入式作業系統的嵌入式系統,使用Protothreads能夠方便直觀地設計多任務程式,能夠實現用線性程式結構處理事件驅動型程式和狀態機程式,簡化了該類程式的設計。
示例代碼
#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);
}。