> ### `LinkedBlockingQueue`
* `FixedThreadPool`和`SingleThreadExecutor`中的阻塞队列
<br/>
> ### `SynchronousQueue`
* `CachedThreadPool`中的阻塞队列
<br/>
> ### `DelayQueue`
* `ScheduledThreadPoolExecutor`中的阻塞队列
* 使用实例,元素需要继承`Delayed`接口
```
public class DelayQueueTest {
static class Element implements Delayed{
long expireTime;
String msg;
public Element(long expireTime, String msg){
this.expireTime = expireTime;
this.msg = msg;
}
@Override
public long getDelay(TimeUnit unit) {
return unit.convert(this.expireTime - System.currentTimeMillis(), TimeUnit.MILLISECONDS);
}
@Override
public int compareTo(Delayed o) {
return (int) (this.getDelay(TimeUnit.MILLISECONDS) -o.getDelay(TimeUnit.MILLISECONDS));
}
}
public static void main(String[] args) {
DelayQueue delayQueue = new DelayQueue();
long now = System.currentTimeMillis();
delayQueue.add(new Element(now + 1000, "1"));
delayQueue.add(new Element(now + 2000, "2"));
delayQueue.add(new Element(now + 3000, "3"));
while(!delayQueue.isEmpty()){
try{
Element e = (Element) delayQueue.take();
System.out.println(e.msg);
}catch(InterruptedException e){
e.printStackTrace();
}
}
}
}
```
- asD
- Java
- Java基础
- Java编译器
- 反射
- collection
- IO
- JDK
- HashMap
- ConcurrentHashMap
- LinkedHashMap
- TreeMap
- 阻塞队列
- java语法
- String.format()
- JVM
- JVM内存、对象、类
- JVM GC
- JVM监控
- 多线程
- 基础概念
- volatile
- synchronized
- wait_notify
- join
- lock
- ThreadLocal
- AQS
- 线程池
- Spring
- IOC
- 特性介绍
- getBean()
- creatBean()
- createBeanInstance()
- populateBean()
- AOP
- 基本概念
- Spring处理请求的过程
- 注解
- 微服务
- 服务注册与发现
- etcd
- zk
- 大数据
- Java_spark
- 基础知识
- Thrift
- hdfs
- 计算机网络
- OSI七层模型
- HTTP
- SSL
- 数据库
- Redis
- mysql
- mybatis
- sql
- 容器
- docker
- k8s
- nginx
- tomcat
- 数据结构/算法
- 排序算法
- 快排
- 插入排序
- 归并排序
- 堆排序
- 计算时间复杂度
- leetcode
- LRU缓存
- B/B+ 树
- 跳跃表
- 设计模式
- 单例模式
- 装饰者模式
- 工厂模式
- 运维
- git
- 前端
- thymeleaf
- 其他
- 代码规范
- work_project
- Interview