syswatch低优先级线程被杀问题

发布于 2020-10-29 09:06:20

问题:假设有3个线程,A,B,C C线程优先级最低,在A,B线程不需要运行时,都运行B线程,但按照下面的代码设置好线程后,syswatch 会定时杀掉C线程。
请教:如何让 syswatch 不会杀掉优先级低,但是一直运行的线程。

测试方法
线程A: 优先级 8
while(1)
{

    rt_kprintf(" \n\n WDT_TEST_00_Thread 线程在跑 \n \n");
    rt_thread_mdelay(100);

}

线程B: 优先级 9
while(1)
{

    rt_kprintf(" \n\n WDT_TEST_01_Thread 线程在跑 \n \n");
    rt_thread_mdelay(100);

}

线程C: 优先级 10
while(1)
{

    rt_kprintf(" \n\n WDT_TEST_02_Thread 线程在跑 \n \n");
    rt_kprintf(" \n\n WDT_TEST_02_Thread 线程在跑 \n \n");
    rt_kprintf(" \n\n WDT_TEST_02_Thread 线程在跑 \n \n");
    rt_kprintf(" \n\n WDT_TEST_02_Thread 线程在跑 \n \n");
    rt_kprintf(" \n\n WDT_TEST_02_Thread 线程在跑 \n \n");
    

}

查看更多

关注者
0
被浏览
271

线程C添加延时,syswatch针对的就是线程阻塞的情况,正常情况下线程不应该完全阻塞CPU

1 个回答

撰写答案

请登录后再发布答案,点击登录

发布
问题

分享
好友

手机
浏览

扫码手机浏览