Linux内核线程
来源:互联网 发布:c语言1到100以内的质数 编辑:程序博客网 时间:2024/05/17 03:44
内核经常需要在后台执行一些操作,这种任务可以通过内核线程(kernel thread)完成——独立运行在内核空间的标准进程。
1.内核线程和普通进程的区别在于内核线程没有独立的地址空间。
2.内核线程只在内核空间运行,从来不切换到用户空间去。
3.内核线程和普通进程一样,可以被调度,也可以被抢占。
4.内核线程只能由其他内存线程创建。内核是通过从kthreadd内核进程中衍生出所有新的内核线程来自动处理这一点的。
1创建内核线程
头文件
#include <linux/kthread.h>
函数
struct task_struct *kthread_create(int (*threadfn)(void *data),
void *data,
const char namefmt[],
…);
参数
threadfn:线程运行函数
data:运行函数threadfn的参数
namefmt:线程名称
功能
创建处于不可运行状态的内核线程
说明
调用wake_up_process()唤醒内核线程开始运行
若想创建一个内核线程,并让它运行起来,可通过调用kthread_run()
#definekthread_run(threadfn, data, namefmt, ...) \
({ \
struct task_struct *__k \
= kthread_create(threadfn, data, namefmt, ## __VA_ARGS__); \
if (!IS_ERR(__k)) \
wake_up_process(__k); \
__k; \
})
2停止内核线程
1)在内核运行函数中调用do_exit()退出
2)调用kthread_stop()函数
int kthread_stop(struct task_struct *k);//参数k为kthread_create的返回值
- Linux内核-内核线程
- 开启linux 内核线程
- linux 内核进程 线程
- linux内核线程相关
- Linux内核线程
- linux 内核线程
- linux 内核线程实例
- linux 内核线程
- Linux内核线程
- linux 内核线程
- linux 内核线程
- Linux内核线程列表
- Linux内核线程
- Linux内核线程
- Linux内核线程
- linux 内核线程创建
- Linux内核线程
- Linux内核线程
- 贪吃蛇总结之二
- Android视图绘制流程完全解析,带你一步步深入了解View(二)
- 机器学习实战之决策树(1)---ID3算法与信息熵,基尼不纯度
- An Easy Problem
- 博客小记
- Linux内核线程
- 子网掩码详解
- kbengine系列教程一
- java中list跟set的异同点
- 浅谈 linux 多线程编程和 windows 多线程编程的异同
- linux 别名
- Linux 任务调度命令
- 【笔记】Java编程思想—一初始化与清理
- 维持网络连接,心跳是最愚蠢的办法