linux内核线程计算积分,linux内核线程kthread

demo: 创建一个内核线程,每隔1000毫秒打印一次my_thread running

sample.c

#include #include #include static int state;

static struct task_struct *my_tsk;

static int my_thread(void *args)

{

for(;;)

{

if(state == 1){

break;

}

msleep(1000);

printk("my_thread running\n");

}

return 0;

}

static int __init sample_init(void)

{

state = 0;

my_tsk = kthread_create(my_thread, NULL, "%s", "my_threaddd");

if (my_tsk){

wake_up_process(my_tsk);

}

return 0;

}

static void __exit sample_exit(void)

{

state = 1;

kthread_stop(my_tsk);

printk("my_thread stopped\n");

}

module_init(sample_init);

module_exit(sample_exit);

MODULE_AUTHOR("XXX");

MODULE_LICENSE("GPL");

Makefile:

obj-m := sample.o

KERNEL :=/usr/src/kernels/`uname -r`/

all:

make -C $(KERNEL) M=`pwd` modules

clean:

make -C $(KERNEL) M=`pwd` clean

查看内核线程:

ps -ef

结果:

root 3429 950 0 01:10 ? 00:00:00 sleep 60

root 3432 2 0 01:11 ? 00:00:00 [my_threaddd]

root 3435 2894 0 01:11 pts/0 00:00:00 ps -ef

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值