thread.c
来源:互联网 发布:五轴编程工资多少钱 编辑:程序博客网 时间:2024/09/21 08:59
thread_block()用于将current_thread 终止变成blocked状态,不能跑,只有在调用thread_unblock()后进入就绪队列。
thread_yield()用于直接把current_thread进入就绪队列,在任意时刻可再次被调用。
list_entry返回一个线程。
idle_thread平常是不在ready_list中的。
1.在thread_start()即系统刚开始时,idle_thread在ready_list中。
2.在ready_list为空时,调用idle_thread。
idle() 在thread_start调用
{
1.把初始化为0的信号量设为1,即将idle_thread放入就绪队列。
2.把idle_thread的状态设为blocked。
}
running_thread()返回一个running thread
thread_current()是加上一个check的running_thread
init_thread()
{
1.初始化thread
2.状态设为blocked
3.把栈的空间变小
4.magic值
5.放入all_list
}
next_thread_to_run()
{
是否就绪队列为空?返回idle_thread:返回就绪队列的第一个,并移除
}
thread_schedule_tail(prev)
{
current_thread的thread_tick清0
激活process
如果prev已经dying,则销毁。
}
schedule()
{
调用这个的函数是thread_block,thread_exit,thread_yield.因为前提是current_thread状态不能是running。
}
总结来看,thread对外有一些接口
1.thread_create()
2.thread_block();
3.thread_unblock()
4.thread_name()
5.thread_current()
6.thread_yield()
7.thread_set_priority()
8.next_thread_to_run()
- Thread(C#)
- c thread
- thread.c
- something about thread(c#)
- linux + thread + c (一)
- C#Thread的使用
- 【c++】线程thread类
- c++thread学习(1)
- C++/MFC-线程Thread
- C++:线程(std::thread)
- C#--理解Thread.Sleep函数
- C#--理解Thread.Sleep函数
- 4.多线程实例:thread.c
- 4.多线程实例:thread.c
- C#Thread类—多线程
- C 的 Thread Pool 筆記
- Linux线程的thread.c
- C#Thread的Join方法
- 发展方向
- 迷茫中。。
- 手动添加打印机的方法(hp laserjet p2055dn为例)
- Linux 中断总结
- C++ Builder 实现动态生成窗口、控件,以及处理控件事件(转载)
- thread.c
- 解决RichEdit line insertion error的方法(转载)
- JAVA SE Lesson 3
- Android-opencv之CVCamera (转载)
- java 反射
- Epoll 使用示例
- ThreadLocal 线程安全 创建线程变量
- .Net开发之入门
- 好不容易进来了....