All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.weicoder.common.lang.Queues Maven / Gradle / Ivy

package com.weicoder.common.lang;

import java.util.Queue;
import java.util.concurrent.ConcurrentLinkedQueue;
import java.util.concurrent.LinkedBlockingQueue;

import com.weicoder.common.interfaces.Callback;
import com.weicoder.common.interfaces.CallbackList;
import com.weicoder.common.util.AsynQueue;
import com.weicoder.common.util.AsynQueueList;
import com.weicoder.common.util.MathUtil;
import com.weicoder.common.util.OnlyQueue;

/**
 * 队列相关方法
 * @author WD
 */
public class Queues {
	/**
	 * 生成新的队列
	 * @return 并发列表队列
	 */
	public static  ConcurrentLinkedQueue newConcurrentQueue() {
		return new ConcurrentLinkedQueue();
	}

	/**
	 * 生成新的堵塞队列
	 * @return 列表堵塞队列
	 */
	public static  LinkedBlockingQueue newLinkedBlockingQueue() {
		return new LinkedBlockingQueue();
	}

	/**
	 * 生产唯一元素并发队列
	 * @return 唯一元素并发队列
	 */
	public static  OnlyQueue newOnlyQueue() {
		return new OnlyQueue();
	}

	/**
	 * 生产异步更新并发队列
	 * @return 异步更新并发队列
	 */
	public static  AsynQueue newAsynQueue(Queue queue, Callback callback, long time) {
		return new AsynQueue(queue, callback, time);
	}

	/**
	 * 生产异步更新并发队列
	 * @return 异步更新并发队列
	 */
	public static  AsynQueue newAsynQueue(Queue queue, Callback callback, int time) {
		return newAsynQueue(queue, callback, MathUtil.multiply(time, 1000).longValue());
	}
	
	/**
	 * 生产异步更新并发队列
	 * @return 异步更新并发队列
	 */
	public static  AsynQueueList newAsynQueueList(Queue queue, CallbackList callback, long time) {
		return new AsynQueueList(queue, callback, time);
	}

	/**
	 * 生产异步更新并发队列
	 * @return 异步更新并发队列
	 */
	public static  AsynQueueList newAsynQueueList(Queue queue, CallbackList callback, int time) {
		return newAsynQueueList(queue, callback, MathUtil.multiply(time, 1000).longValue());
	}

	private Queues() {}
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy