面试普通人VS高手系列:如何区分阻塞队列的有界与无界特性?
- 内容介绍
- 文章标签
- 相关推荐
本文共计823个文字,预计阅读时间需要4分钟。
昨天一个有3年Java经验的年轻人私信我,他说现在面试怎么这么难啊!他面试一个业务开发,面试官竟然问他:什么是阻塞队列的界限和无界限。现在面试也太卷了吧!如果你们也遇到过类似的情况。
普通人昨天一个3年Java经验的小伙伴私信我,他说现在面试怎么这么难啊!
我只是面试一个业务开发,他们竟然问我: 什么叫阻塞队列的有界和无界。现在面试也太卷了吧!
如果你也遇到过类似问题,那我们来看看普通人和高手的回答吧!
有界队列就是说队列中的元素个数是有限制的,而无界对接表示队列中的元素个数没有限制! 嗯!!!
高手-
阻塞队列,是一种特殊的队列,它在普通队列的基础上提供了两个附加功能
- 当队列为空的时候,获取队列中元素的消费者线程会被阻塞,同时唤醒生产者线程。
- 当队列满了的时候,向队列中添加元素的生产者线程被阻塞,同时唤醒消费者线程。
-
其中,阻塞队列中能够容纳的元素个数,通常情况下是有界的,比如我们实例化一个
ArrayBlockingList,可以在构造方法中传入一个整形的数字,表示这个基于数组的阻塞队列中能够容纳的元素个数。这种就是有界队列。 -
而无界队列,就是没有设置固定大小的队列,不过它并不是像我们理解的那种元素没有任何限制,而是它的元素存储量很大,像LinkedBlockingQueue,它的默认队列长度是Integer.Max_Value,所以我们感知不到它的长度限制。
本文共计823个文字,预计阅读时间需要4分钟。
昨天一个有3年Java经验的年轻人私信我,他说现在面试怎么这么难啊!他面试一个业务开发,面试官竟然问他:什么是阻塞队列的界限和无界限。现在面试也太卷了吧!如果你们也遇到过类似的情况。
普通人昨天一个3年Java经验的小伙伴私信我,他说现在面试怎么这么难啊!
我只是面试一个业务开发,他们竟然问我: 什么叫阻塞队列的有界和无界。现在面试也太卷了吧!
如果你也遇到过类似问题,那我们来看看普通人和高手的回答吧!
有界队列就是说队列中的元素个数是有限制的,而无界对接表示队列中的元素个数没有限制! 嗯!!!
高手-
阻塞队列,是一种特殊的队列,它在普通队列的基础上提供了两个附加功能
- 当队列为空的时候,获取队列中元素的消费者线程会被阻塞,同时唤醒生产者线程。
- 当队列满了的时候,向队列中添加元素的生产者线程被阻塞,同时唤醒消费者线程。
-
其中,阻塞队列中能够容纳的元素个数,通常情况下是有界的,比如我们实例化一个
ArrayBlockingList,可以在构造方法中传入一个整形的数字,表示这个基于数组的阻塞队列中能够容纳的元素个数。这种就是有界队列。 -
而无界队列,就是没有设置固定大小的队列,不过它并不是像我们理解的那种元素没有任何限制,而是它的元素存储量很大,像LinkedBlockingQueue,它的默认队列长度是Integer.Max_Value,所以我们感知不到它的长度限制。

