RT-Thread 使用「線程」術語,功能等同於傳統 RTOS 的「任務」。
rt_thread_t tid = rt_thread_create("name", entry, param, stack_size, priority, tick);
if (tid) rt_thread_startup(tid); // 運行時從堆分配 TCB+棧,刪除時釋放
struct rt_thread thread; rt_uint8_t stack[1024]; rt_thread_init(&thread, "name", entry, param, stack, sizeof(stack), priority, tick); rt_thread_startup(&thread); // 編譯期分配在 RW 段,不佔用堆,刪除用 rt_thread_detach 不釋放內存
| 特性 | 動態 | 靜態 |
|---|---|---|
| 內存來源 | 運行時堆 | 編譯期 RW/ZI 段 |
| 創建速度 | 需分配較慢 | 極快 |
| 刪除後內存 | 歸還堆 | 保留不可復用 |
| 實時性 | 略低 | 最高(無分配不確定性) |
| 適用場景 | 動態數量、臨時線程 | 核心固定線程、啟動階段 |
rt_thread_delay(ticks):掛起指定 tick,進入掛起態。rt_thread_delete(tid):刪除動態線程並釋放資源。rt_thread_detach(&thread):從對象管理器脫離靜態線程。finsh 組件:命令行輸入 list_thread 查看運行狀態。