public enum SequenceEnum { SEQUENCE; SequenceEnum() { } private static final ConcurrentLinkedQueue<String> cache = new ConcurrentLinkedQueue<>(); private static final ReentrantLock lock = new ReentrantLock(); /** * * 出隊 */ public String poll() { try { lock.lock(); if (cache.size() < 100) { //必須調用其他方法增加隊列數量 offer(SequenceUtil.getSequenceArray()); } } catch (Exception e) { e.printStackTrace(); } finally { lock.unlock(); } return cache.poll(); } /** * * 入隊 */ public void offer(String[] sequenceArray) { for (String sequence : sequenceArray) { cache.add(sequence); } } /** * * 隊列數量太大,不可使用,因爲遍歷整個隊列,耗時過長 */ public int size() { return cache.size(); } /** * * 判空使用此方法 */ public boolean isEmpty(){ return cache.isEmpty(); } }