简单队列缓存

匿名 (未验证) 提交于 2019-12-02 23:45:01
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();     }  }

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!