主线程

  1. 监听和建立客户端的连接
  2. 接收客户端的请求数据,创建一个任务,该任务携带请求数据,并把该任务放入任务队列
  3. 告诉分发线程,有请求任务过来了,叫他赶紧去处理
  4. 重复上面三个步骤

注意:主线程不处理具体请求

分发线程

  1. 查看任务队列,看是否有请求任务?没有任务则继续睡觉,否则把任务取出来,然后分发给线程池
  2. 线程池有空闲的线程,则把该任务交给空闲的线程处理,否则该任务乖乖待在队列里等待,直到有空闲的线程为止
  3. 重复上面两个步骤

注意:分发线程也不处理具体请求

工作线程

  1. 执行任务
  2. 销毁任务
  3. 重复以上两个步骤

注意:工作线程处理具体请求