老规矩来个类图 方便大家理解
ArrayBlockingQueue一点理解
先来看一下put方法
ArrayBlockingQueue一点理解
具体的入队方法
ArrayBlockingQueue一点理解
ArrayBlockingQueue一点理解
ArrayBlockingQueue一点理解
在看看下peek是如何实现的
peek 的方法比较简单
直接返回对应位置的元素,不对队列中的元素有任何的污染
ArrayBlockingQueue一点理解
ArrayBlockingQueue一点理解
接下来看下pool
ArrayBlockingQueue一点理解
ArrayBlockingQueue一点理解
到这里我们似乎恍然大悟了,take方法和pool方法共用的是一个出队的方法,所以他们的处理类似,最终都是将当前的takeIndex加1,相当于一个出队的过程,那么下次再取的时候其实也拿不到这个元素了。而peek方法则比较简单,直接根据对应的小标进行返回。

相关文章:

  • 2021-11-22
  • 2021-07-16
  • 2021-12-12
  • 2022-12-23
  • 2022-12-23
  • 2021-12-15
  • 2021-08-31
猜你喜欢
  • 2022-12-23
  • 2021-12-10
  • 2021-05-29
  • 2021-10-11
相关资源
相似解决方案