内核线程的使用
来源:互联网 发布:东京交通知乎 编辑:程序博客网 时间:2024/04/29 13:31
首先介绍几个创建线程相关的函数:
struct task_struct *kthread_create(int (*threadfn)(void *data), void *data, const char namefmt[], ...)
创建一个内核线程,但是并不会开始执行,返回task_struct结构体。
创建的线程可以通过:
int wake_up_process(struct task_struct *p)
函数来唤醒。一个线程即一个task。
int kthread_should_stop(void)
通过该函数查看线程是否要停下,
int kthread_stop(struct task_struct *k)通过此函数来停止一个线程。一个典型的线程函数的实例如下:thread_func(){wait_queue_head_t wait_queue;DECLARE_WAITQUEUE(wait, current); add_wait_queue(&p_thread->wait_queue, &wait); __set_current_state(TASK_RUNNING);do {__set_current_state(TASK_INTERRUPPTABLE);schedule();__set_current_state(TASK_RUNNING);/*todo:......*/
}while(!kthread_should_stop());remove_wait_queue(&wait_queue, &wait);}其中的DECLARE_WAITQUEUE与进程调度相关,通过该函数可使线程进入wait状态,以等待被唤醒。
- 内核线程的使用
- Linux 内核线程的使用
- 线程同步的内核对象的使用
- 关于内核定时器,DPC,线程的使用
- 关于内核定时器,DPC,线程的使用
- 使用内核线程
- 根据内核来创建线程--SetThreadAffinityMask函数的使用
- 内核笔记:内核线程的创建
- 内核线程与用户线程的区别
- 内核线程和用户线程的区别
- 内核线程和用户线程的区别
- 进程.线程,内核线程创建的区别
- 用户线程和内核线程的区别
- 用户线程和内核线程的区别
- uclinux内核线程的创建
- 内核线程优先级的设置
- 一个简单的内核线程
- 内核对象的线程同步
- 研一快结束——阶段总结
- 朱棣文先生在哈佛大学毕业典礼上的演讲
- DLL编写教程
- 练习找CALL新感受(原创)
- WAP应用开发关于使用JSP问题
- 内核线程的使用
- 谷歌创始人密歇根大学毕业典礼演讲全文
- 啊
- iBATIS实现的一个例子
- javascript显示时间
- c#做的物业管理系统
- J.K.罗琳在哈佛大学毕业典礼上的演讲:失败的额外收益与想象力的重要性
- 在flash builder的纯actionscript工程中导入flex组件
- Android 初始化ini.rc中启动zygote服务