- 简单介绍
DelayQueue是一个延时阻塞队列,实现了BlockingQueue接口,是一个线程安全的队列。它可以根据用户设定的阻塞时间,阻塞队列出队这一操作一定的时间。
- 一个例子
给出一个例子
import java.time.LocalDateTime;
import java.time.format.DateTimeFormatter;
import java.util.concurrent.DelayQueue;
import java.util.concurrent.Delayed;
import java.util.concurrent.TimeUnit;
public class DelayQueueTest {
public static void main(String[] args) throws InterruptedException {
DelayItem<String> delayItem1 = new DelayItem<>("test_1", 10, TimeUnit.SECONDS);
DelayItem<String> delayItem2 = new DelayItem<>("test_2", 5, TimeUnit.SECONDS);
DelayItem<String> delayItem3 = new DelayItem<>("test_3", 1000);
DelayQueue<DelayItem> delayQueue = new DelayQueue<>();
delayQueue.put(delayItem1);
delayQueue.put(delayItem2);
delayQueue.put(delayItem3);
for (int i = 0; i < 3; i++) {
DelayItem delayItem = delayQueue.take();
System.out.println(delayItem.data + "---" +
LocalDateTime.now().format(DateTimeFormatter.ISO_LOCAL_DATE_TIME));
}
}
static class D