今天时间学习DelayQueue api,该类是JUC原子包中的类,通过单元测试代码把所有public api方法跑了一遍,大致了解了底层实现,初学乍练,有很多一知半解的地方,待后续有了深入理解再来补充
package test.java.util.concurrent;
import java.util.*;
import java.util.concurrent.DelayQueue;
import java.util.concurrent.Delayed;
import java.util.concurrent.TimeUnit;
import org.junit.Test;
/**
* DelayQueue的测试类
*
* @date 2020-07-14 20:23:37
*/
public class DelayQueueTest {
class DelayQueueImpl implements Delayed{
@Override
public long getDelay(TimeUnit unit) {
return 1321;
}
@Override
public int compareTo(Delayed o) {
return 0;
}
}
/**
* 无参构造函数
* @Param
*/
@Test
public void testConstruct0()throws Exception{
DelayQueue testObj=new DelayQueue();
System.out.println(testObj.toString());
}
/**
* 通过集合初始化queue
* @Param
*/
@Test
public void testConstruct1()throws Exception{
Set set=new HashSet();
DelayQueueImpl delayQueue=new DelayQueueImpl();
set.add(delayQueue);
DelayQueue testObj=new DelayQueue(set);
System.out.println(testObj.toString());
}
/**
* 添加延时队列子元素
* @Param
*/
@Test
public void testAdd()throws Exception{
DelayQueueImpl delayQueue=new DelayQueueImpl();
DelayQueue testObj=new DelayQueue();
testObj.add(delayQueue);
System.out.println(testObj.poll().getDelay(TimeUnit.SECONDS));
}
/**
*添加延时队列子元素