DelayQueue:
JDK自带的延迟队列,基于阻塞队列实现。 |
import java.util.Calendar;
import java.util.Date;
import java.util.concurrent.DelayQueue;
import java.util.concurrent.Delayed;
import java.util.concurrent.TimeUnit;
//延迟任务 例子:
public class MyDelayedTask implements Delayed {
//任务的执行时间
private int executeTime =0 ; //代表元素执行时间
private String name;//元素名称
/**
*
* @param delay 元素延迟多久执行
* @param name 元素名称
*/
public MyDelayedTask(int delay, String name) {
Calendar calendar = Calendar.getInstance();
calendar.add(Calendar.SECOND,delay);
this.executeTime = (int)(calendar.getTimeInMillis()/1000);
this.name = name;
}
/**
* 元素在队列中的剩余时间
* @param unit the time unit
* @return
*/
@Override
public long getDelay(TimeUnit unit) {
Calendar calendar = Cal