是这样,finsh优先级为21,任务线程优先级为16,同时开了28个,时间片是10,每个任务线程都有delay 50ms的操作。
我是这样测试的,通过finsh创建了一个优先级为10的线程(该线程也有delay),每隔1s就会关闭5个任务线程,再隔1s把关闭的5个任务线程打开,如此反复。前4/500次,finsh都可以正常输入命令如查看当前线程,且关闭的线程都已被空闲线程回收掉了;后面突然开始,关闭的线程一直处于closed状态,空闲线程得不到运行,此时finsh组件也无法输入,但是任务线程一直都有打印,(这时我是通过优先级为5的telnet线程进去看系统状态的)。正常的时候,通过free查看内存都是此消彼长,维持一个稳定的上下浮动状态,异常之后,内存就开始逐渐增加,直到最后无法分配内存。
是这样,finsh优先级为21,任务线程优先级为16,同时开了28个,时间片是10,每个任务线程都有delay 50ms的操作。
我是这样测试的,通过finsh创建了一个优先级为10的线程(该线程也有delay),每隔1s就会关闭5个任务线程,再隔1s把关闭的5个任务线程打开,如此反复。前4/500次,finsh都可以正常输入命令如查看当前线程,且关闭的线程都已被空闲线程回收掉了;后面突然开始,关闭的线程一直处于closed状态,空闲线程得不到运行,此时finsh组件也无法输入,但是任务线程一直都有打印,(这时我是通过优先级为5的telnet线程进去看系统状态的)。正常的时候,通过free查看内存都是此消彼长,维持一个稳定的上下浮动状态,异常之后,内存就开始逐渐增加,直到最后无法分配内存。
举报