面试题答案
一键面试答案:可以选择ArrayBlockingQueue
。原因是ArrayBlockingQueue
是基于数组实现的有界阻塞队列,在创建时就需要指定容量大小。当队列满时,生产者线程调用put
方法添加元素会被阻塞,直到队列有空间可用,这种阻塞机制满足在队列满时生产者线程等待的需求。而且基于数组实现,相比于一些基于链表实现的阻塞队列(如LinkedBlockingQueue
),在内存使用上更为紧凑,不会因为链表节点的额外空间开销而占用过多额外空间,符合对内存使用敏感的场景要求。