fidsqueue.java

来自「短信发送」· Java 代码 · 共 78 行

JAVA
78
字号
/**
 * Created at Dec 1, 2008
 */
package com.jdev.app.db.queue;

import java.util.LinkedList;

/**
 * <p>Title: FidsQueue</p>
 * <p>Description: </p>
 * @author Lawrence
 * @version 1.0
 */
public class FidsQueue {
	private final static String module = FidsQueue.class.getName();
	private LinkedList<Object> recvList = new LinkedList<Object>();
	private LinkedList<Object> sendList = new LinkedList<Object>();

	public int getSendRecord(){
		int count = 0;
		synchronized(sendList){
			count = sendList.size();
		}
		return count;
	}

	public int getRecvRecord(){
		int count = 0;
		synchronized(recvList){
			count = recvList.size();
		}
		return count;
	}
	
	public void pushSend(Object sendMsg) {
		synchronized (sendList) {
			sendList.add(sendMsg);
			sendList.notifyAll();
		}
	}

	public Object removeSendFirst() {
		synchronized (sendList) {
			// 如果没有任务,就锁定在这里
			while (sendList.isEmpty()) {
				try {
					sendList.wait(); //等待解锁
				} catch (InterruptedException ie) {
					ie.printStackTrace();
				}
			}
			return sendList.removeFirst();
		}
	}
	
	public void pushRecv(Object recvMsg) {
		synchronized (recvList) {
			recvList.add(recvMsg);
			recvList.notifyAll();
		}
	}

	public Object removeRecvFirst() {
		synchronized (recvList) {
			// 如果没有任务,就锁定在这里
			while (recvList.isEmpty()) {
				try {
					recvList.wait(); //等待解锁
				} catch (InterruptedException ie) {
					ie.printStackTrace();
				}
			}
			return recvList.removeFirst();
		}
	}

}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?