zoukankan      html  css  js  c++  java
  • DelayedQueue

    DelayedQueue是一个用来延时处理的队列,
    * 所谓延时处理就是说可以为队列中元素设定一个过期时间,
    * 相关的操作受到这个设定时间的控制。
    首先,这种队列中只能存放实现Delayed接口的对象,
    而此接口有两个需要实现的方法。最重要的就是getDelay,
    这个方法需要返回对象过期前的countdown时间。
    简单说,队列在某些方法处理前,会调用此方法来判断对象有没有超时。
    DelayedQueue本身有些类似的存取方法,按doc描述区别如下:

    ​存入队列:add offer put无太大区别

    从队列中获取:peek poll take​有较大不同使用场景

    peek:获取队列的head对象,但不是从队列中移除。如果队列空,就返回空

    poll :​获取并移出队列head对象。如果head没有超时,返回空

    poll w/ timeout参数 : ​获取并移出队列head对象。如果没有超时head对象,会wait当前线程知道有超时对象,或者按照超时参数设定,返回空

    take : ​获取并移出队列head对象。如果没有超时head对象,会wait当前线程知道有对象满足超时条件

    ​DelayedQueue实现保证了最快过期的对象排在head位置,也就是说它会在每次peek时候返回最快超时的对象。

    使用的代码演示:
    http://blog.csdn.net/yjl49/article/details/7088121

  • 相关阅读:
    JPA 系列教程1-环境搭建
    微信企业号接收消息(使用SpringMVC)
    oracle xe 数据库用户操作
    eclipse快捷键
    堆和栈的区别(重要)
    synchronized的4种用法
    servlet匹配规则和顺序
    JAVA中的枚举
    JSON对象操作
    Handler
  • 原文地址:https://www.cnblogs.com/hzcya1995/p/13310627.html
Copyright © 2011-2022 走看看