内核等待队列来实现进程的阻塞,等待队列可以看做是保存进程的容器,在阻塞进程时,将进程放入等待队列,当唤醒进程时,从等待队列中取出进程。
实现方法:
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)
如果condition为假时,立即睡眠放在指定的queue中,不可中断