生产者和消费者之间为什么隔着一个队列? 首先,生产者与消费者由于速度的不一致,所以需要一个空间用于缓冲.这可以将生产者与消费者解耦,生产者产出数据的时候,不需要把数据交到消费者手上才行,只要把数据丢入缓冲区就好.这样就可以各做各的. 为什么缓冲区是一个队列? 通常情况下,这个缓冲区的数据结构是一个有序的队列.实际上如果对处理顺序没啥要求,其实也不一定要用队列.插空都可以. 为什么访问的缓冲区的时候要获得锁? 缓冲区这个数据结构会被多线程并发访问(生产者.消费者线程),所以需要加锁,一方面保护它的