首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> C語言 >> 關於C語言

RT-Thread 線程管理詳解:靜態/動態創建、啟動、刪除、延時與棧空間對比

     編輯:關於C語言

線程 vs 任務

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 段
創建速度需分配較慢極快
刪除後內存歸還堆保留不可復用
實時性略低最高(無分配不確定性)
適用場景動態數量、臨時線程核心固定線程、啟動階段

常用 API

  • rt_thread_delay(ticks):掛起指定 tick,進入掛起態。
  • rt_thread_delete(tid):刪除動態線程並釋放資源。
  • rt_thread_detach(&thread):從對象管理器脫離靜態線程。
  • finsh 組件:命令行輸入 list_thread 查看運行狀態。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved