队列
队列是等待处理的任务列表。新任务加入队列后,会在系统处理先加入队列或优先级更高的其他任务时等待轮到自己。计算机 硬件 和 软件 应用使用队列来确定在完成上一个任务后接下来要处理或传输哪些 数据。
大多数作业队列会按照任务添加的顺序执行任务,这称为先进先出First In, First Out,(FIFO)。不过,有些任务适合采用其他排序方式。后进先出Last In, First Out,(LIFO)方法会优先处理最近添加的任务,而不是最早添加的任务。优先级调度会根据预先确定的标准为每个任务分配优先级,例如最早截止时间的任务或所需处理时间最短的任务,然后优先处理优先级最高的作业。
每个 操作系统 都包含一个称为任务调度程序的软件组件。当多个程序同时运行时,任务调度程序会创建一个由 进程 组成的队列。任务调度程序会为队列最前面的进程分配 CPU 时间,以执行其指令;一个任务完成后,会从队列中移除,下一个任务便可轮到自己。一些 应用程序 会为处理器密集型任务创建自己的任务队列,这可能允许用户自定义某些作业的执行顺序。例如,HandBrake 等视频 编码 应用程序允许你创建一个 批处理 队列,一次编码一个视频,并在上一个编码作业完成后自动开始处理下一个视频。
除了计算机之外,其他设备也会使用队列来管理数据。交换机 和 路由器 等网络设备在通过 网络 转发数据 数据包 时会创建队列,确保数据包按照传输时的相同顺序到达目的地。打印机 也会使用队列管理多个打印作业,并按照接收顺序打印这些作业。大多数打印机都包含允许用户手动对队列中的作业进行排序、取消和添加的软件。
测试你的知识