队列(Queue)与线程(Thread)的关系

一个队列由一个或多个任务组成,当这些任务要开始执行时,系统会分别把他们分配到某个线程上去执行。当有多个系统核心时,为了高效运行,这些核心会将多个线程分配到各核心上去执行任务,对于系统核心来说并没有任务的概念。
对于一个并行队列来说,其中的任务可能被分配到多个线程中去执行,即这个并行队列可能对应多个线程。对于串行队列,它每次对应一个线程,这个线程可能不变,可能会被更换。
每一时刻,一个线程都只能执行一个任务。一个线程也可能是闲置或者挂起的,因此线程存在时不一定就在执行任务。
队列和线程可以说是两个层级的概念。队列是为了方便使用和理解的抽象结构,而线程是系统级的进行运算调度的单位,他们是上下层级之间的关系。