Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
我知道当一个任务运行时,它被排入运行队列。当它休眠时,它会从运行队列中出列。但是有睡眠任务的队列吗?我在源代码中没有看到这一点。
即使我要创建这样一个队列,我怎么知道任务何时被终止并应该从睡眠队列中删除?
谁能给我一个提示?谢谢,
在 Linux 中,阻塞(休眠)任务在称为等待队列的结构中排队。每个事件(或对象)都存在一个等待队列,可以等待。
因此,没有单个等待队列(或每个内核),而是每个事件等待队列。内核代码明确地将任务放在等待队列中,并在特定事件到达时将其删除。例如,请参阅 wait_event() 内核 API。