rtthread 主動掛起執行緒

2021-10-18 20:33:08 字數 845 閱讀 5593

/*

* 程式清單:建立、啟動、掛起、恢復執行緒

* * 這個例子會建立兩個動態執行緒:tid1和tid2有相同的優先順序,tid1執行緒中因無delay延時,start後tid1始終處於ready態,也正是因為這個前提,tid2才能夠成功將tid1掛起。

* 現象:每隔20s(200ms*100),tid1被tid2掛起或恢復一次。

*/rt_thread_t my_tid1 = rt_null, my_tid2 = rt_null;

void

my_tid1_thread_entry

(void

* params)

}void

my_tid2_thread_entry

(void

* params)

else

if(my_tid1->stat == rt_thread_ready)}}

}void

suspend_resume_test

(int argc,

char

* ar**)

if(rt_null == my_tid2)

}msh_cmd_export

(suspend_resume_test, suspend_resume_test)

;

通常不應該使用rt_err_t rt_thread_suspend(rt_thread_t thread)來掛起執行緒本身,如果確實需要採用 rt_thread_suspend() 函式掛起當前任務,需要在呼叫 rt_thread_suspend() 函式後立刻呼叫 rt_schedule() 函式進行手動的執行緒上下文切換。只需要了解,不推薦使用。

掛起執行緒注入

掛起執行緒後,獲得執行緒當前的上下背景文。將其中的eip設定為我們shellcode的位址,執行完畢後再返回原本的eip 提權獲得執行緒的id 可以通過程序id createtoolhelp32snapshot th32cs snapthread,0 te32.th32ownerprocessid ...

RT Thread 執行緒的建立

基本概念 執行緒是實現任務的載體,它是rt thread中最基本的排程單位,它描述了乙個 任務執行的執行環境,也描述了這個任務所處的優先等級。rt thread中,執行緒由三部分組成 執行緒 入口函式 執行緒控制塊 執行緒堆疊 1 建立程序 1 建立靜態執行緒 rt err t rt thread ...

python 主線程 掛起

有時我們需要掛起主線程,當io執行緒 滿足條件時 再執行。可以通過python中的event 事件 來實現該功能 import threading wake event threading.event 主線程,假如主線有個while迴圈 while true wake event.wait wake...