Linux内核 - 等待队列的使用

来源:互联网 发布:淘宝标志图片大全 编辑:程序博客网 时间:2024/05/16 07:54

1. 定义等待队列

wait_queue_head_t my_queue


2. 初始化队列

init_waitqueue_head(&my_queue)


3. 定义并初始化队列

DECLARE_WAIT_QUEUE_HEAD(my_queue)


4. 有条件睡眠

wait_event(queue, condition)

wait_event_interruptible(queue, condition)

wait_event_killable(queue, condition)


condition == TRUE立即返回

condition == FALSE使进程睡眠并加入等待队列中


5. 无条件睡眠(老版本,  不建议使用)

sleep_on(queue)

interruptible_sleep_on(queue)


6. 从等待队列中唤醒进程

wake_up(queue)

从等待队列中唤醒具有以下状态的进程:

TASK_UNINTERRUPTIBLE

TASK_INTERRUPTIBLE

TASK_KILLABLE

wake_up_interruptible(queue)
从等待队列中唤醒具有TASK_INTERRUPTIBLE状态的进程

 
原创粉丝点击