读书人

rt-thread的闲工夫线程源码分析

发布时间: 2013-02-24 17:58:56 作者: rapoo

rt-thread的空闲线程源码分析

rt-thread的空闲线程在是线程空闲时执行的,它的主要操作是进行“垃圾回收”,这里的“垃圾”是待close掉的线程。

1 空闲线程的实现

在rt-thread线程启运时,系统会初始化空闲线程并启动它:

//...if (thread->cleanup != RT_NULL)//如果存在线程析构函数    {        /* disable interrupt */        lock = rt_hw_interrupt_disable();//关中断        /* insert to defunct thread list *///rt_thread_defunct链表在系统空闲时将被空闲线程来处理        rt_list_insert_after(&rt_thread_defunct, &(thread->tlist));//将线程加入到rt_thread_defunct链表中        /* enable interrupt */        rt_hw_interrupt_enable(lock);//开中断    }//...

可见,在线程被脱离或删除时,会将线程加入到回收链表rt_thread_defunct中,此链表在scheduler.c源文件中定义,专门用来保存待回收的线程.

读书人网 >软件架构设计

热点推荐