完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
这段时间遇到个奇怪的问题,就是同一个线程,先执行rt_thread_delete把其删除,然后又重新启动这个线程,竟然无法重启启动该线程,试了好几遍。 tid1 = rt_thread_create(XXX) 延时重新启动这个线程 tid1 = rt_thread_createXXX) 尽然就卡住了,这个线程尽然重新起起不了,卡住。。。。 这个是个什么情况?不能第二次启动同一个线程,不应该啊,求助!!! |
|
相关推荐
4个回答
|
|
删除线程,不是挂起线程,线程信息与线程栈就会释放,所以需要重新创建
1、tid1 = rt_thread_create(XXX) 2、rt_thread_startup(tid1); 3、rt_thread_delete(tid1); / 删除后,线程就没有了,需要重新 create / 4、tid1 = rt_thread_create(XXX) 5、rt_thread_startup(tid1); / 再启动 / |
|
|
|
新开了一个空的工程试了可以重启成功,有可能是我那个源工程线程功能上开了很多锁和信号量,导致删除了线程,别的线程一直在等待所以卡起来了。
|
|
|
|
设计的好,理论上一个线程就可以搞定,为何需要频繁删除创建线程?删除线程,使用的一些信号量、互斥量、等等资源,都需要考虑是否或者重新创建。
可以使用通讯方式,把处理放在一个线程执行,或者开两个线程,交替执行,无须删除 |
|
|
|
建议增加判断线程是否删除成功了,然后再往下进行。
|
|
|
|
你正在撰写答案
如果你是对答案或其他答案精选点评或询问,请使用“评论”功能。
583 浏览 0 评论
AI模型部署边缘设备的奇妙之旅:如何在边缘端部署OpenCV
2207 浏览 0 评论
tms320280021 adc采样波形,为什么adc采样频率上来波形就不好了?
1227 浏览 0 评论
1776 浏览 0 评论
1462 浏览 0 评论
74790 浏览 21 评论
浏览过的版块 |
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-22 14:06 , Processed in 0.605955 second(s), Total 77, Slave 60 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号