首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 软件管理 > 软件架构设计 >

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

2013-02-24 
rt-thread的空闲线程源码分析rt-thread的空闲线程在是线程空闲时执行的,它的主要操作是进行“垃圾回收”,这

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源文件中定义,专门用来保存待回收的线程.

热点排行