diff --git a/rt-thread-version/rt-thread-standard/programming-manual/thread/thread.md b/rt-thread-version/rt-thread-standard/programming-manual/thread/thread.md index 09baf1284c13c66eb36f1ef21a27966be291d052..1f2c1e44763fa38501d6904e8b876dedce5fcdc1 100644 --- a/rt-thread-version/rt-thread-standard/programming-manual/thread/thread.md +++ b/rt-thread-version/rt-thread-standard/programming-manual/thread/thread.md @@ -377,7 +377,7 @@ rt_err_t rt_thread_suspend (rt_thread_t thread); | \-RT_ERROR | 线程挂起失败,因为该线程的状态并不是就绪状态 | > [!NOTE] -> 注:只能使用本函数来挂起线程自己,不可以在线程A中尝试挂起线程B,而且在挂起线程自己后,需要立刻调用 rt_schedule() 函数进行手动的线程上下文切换。用户只需要了解该接口的作用,不推荐使用该接口。该接口可视为内核内部接口。 +> 注:RT-Thread对此此函数有严格的使用限制,该函数只能使用来挂起当前线程(即自己挂起自己),不可以在线程A中尝试挂起线程B,而且在挂起线程自己后,需要立刻调用 `rt_schedule()` 函数进行手动的线程上下文切换。用户只需要了解该接口的作用即可,强烈不建议在程序中使用该接口,该接口可以视为是内部接口。这是因为A线程在尝试挂起B线程时,A线程并不清楚B线程正在运行什么程序,一旦B线程正在使用例如互斥量、信号量等影响、阻塞其他线程的内核对象,那么A线程尝试挂起B线程的操作将会引发连锁反应,严重危及系统的实时性(有些地方会将其描述为死锁,实际上这种现象不是死锁,但是也不比死锁好到哪去)。 恢复线程就是让挂起的线程重新进入就绪状态,并将线程放入系统的就绪队列中;如果被恢复线程在所有就绪态线程中,位于最高优先级链表的第一位,那么系统将进行线程上下文的切换。线程恢复使用下面的函数接口: