码迷,mamicode.com
首页 > 编程语言 > 详细

09 | 队列:队列在线程池等有限资源池中的应用

时间:2020-02-16 13:04:23      阅读:77      评论:0      收藏:0      [点我收藏+]

标签:als   null   info   一个   lse   code   boolean   com   string   

技术图片

 

 技术图片

 

 当队满时,(tail+1)%n=head。

技术图片

 

 技术图片

 

 

public class CircularQueue {
  // 数组:items,数组大小:n
  private String[] items;
  private int n = 0;
  // head表示队头下标,tail表示队尾下标
  private int head = 0;
  private int tail = 0;

  // 申请一个大小为capacity的数组
  public CircularQueue(int capacity) {
    items = new String[capacity];
    n = capacity;
  }

  // 入队
  public boolean enqueue(String item) {
    // 队列满了
    if ((tail + 1) % n == head) return false;
    items[tail] = item;
    tail = (tail + 1) % n;
    return true;
  }

  // 出队
  public String dequeue() {
    // 如果head == tail 表示队列为空
    if (head == tail) return null;
    String ret = items[head];
    head = (head + 1) % n;
    return ret;
  }
}

 

09 | 队列:队列在线程池等有限资源池中的应用

标签:als   null   info   一个   lse   code   boolean   com   string   

原文地址:https://www.cnblogs.com/lakeslove/p/12316319.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!