本帖最后由 mysterywolf 于 2022-4-27 11:31 编辑
freebsder 发表于 2022-4-26 11:30 rtthread我研究不深,多谢指出具体位置。建议rtthread加上挂起别人的支持,作为一个基础平台和支撑平台, ...
大概率不会的,我特意在文档中仔细写出了rt_thread_suspend不允许挂起其他线程的原因,结果被楼主当做了《balabla》。挂起函数是从通用操作系统中传下来的,对于实时性有硬性要求的操作系统,这种操作非常的危险,不会因为其他RTOS有,RT-Thread就会盲目的去跟风。相反,其他的RTOS例如FreeRTOS并未在文档中提及这种操作的危险性,却被追崇。。。
另外,微软的相关软件中也是对suspend函数/方法有严格的限制,
https://devblogs.microsoft.com/oldnewthing/20031209-00/?p=41573
https://github.com/dotnet/csharplang/issues/2421#issuecomment-482799918
RTEMS操作系统论坛中对挂起任务/线程的危险性也有提及,但是我没有具体查验他的手册中是否提及:
https://rtems-users.rtems.narkive.com/VMOyyUJE/problem-when-suspending-a-task
> rtthread我研究不深
其实并不是你对rt-thread了解不深,而是对RTOS了解不深。你的定位一直把优先级继承协议和线程挂起绑定在一起是让我很困惑的。任何一款RTOS,优先级继承的概念是互斥量的一个下属分支,而线程挂起这个概念是个更大范围的,可以挂起任何线程,无论这个线程是否使用互斥量与否。楼主大概率是对这块的概念比较混淆。