0
点赞
收藏
分享

微信扫一扫

c++ 继承方式高内聚read write function操作

鱼板番茄 2023-10-26 阅读 43

面试官:BlockingQueue中有哪些方法,为什么这样设计?

参考答案:

为了应对不同的业务场景,BlockingQueue 提供了4 组不同的方法用于插入、移除以及对队列中的元素进行检查。如果请求的操作不能得到立即执行的话,每组方法的表现是不同的。这些方法如下:

抛异常特定值阻塞超时
插入add(e)offer(e)put(e)offer(e, time, unit)
移除remove()poll()take()poll(time, unit)
检查element()peek()

四组不同的行为方式含义如下:

  • 抛异常:如果操作无法立即执行,则抛一个异常;

  • 特定值:如果操作无法立即执行,则返回一个特定的值(一般是 true / false)。

  • 阻塞:如果操作无法立即执行,则该方法调用将会发生阻塞,直到能够执行;

  • 超时:如果操作无法立即执行,则该方法调用将会发生阻塞,直到能够执行。但等待时间不会超过给定值,并返回一个特定值以告知该操作是否成功(典型的是true / false)。

举报

相关推荐

0 条评论