messagequeue.java

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

JAVA
80
字号
/**
 * Created at Nov 20, 2008
 */
package com.jdev.net.queue;

import java.util.LinkedList;

/**
 * <p>Title: MessageQueue</p>
 * <p>Description: </p>
 * @author Lawrence
 * @version 1.0
 */
public class MessageQueue {
	private final static String module = MessageQueue.class.getName();

	private LinkedList<Object> requestList = new LinkedList<Object>();
	private LinkedList<Object> responseList = new LinkedList<Object>();

	public int getResponseRecord(){
		int count = 0;
		synchronized(responseList){
			count = responseList.size();
		}
		return count;
	}

	public int getRequestRecord(){
		int count = 0;
		synchronized(requestList){
			count = requestList.size();
		}
		return count;
	}
	
	public void pushRequest(Object requestMsg) {
		synchronized (requestList) {
			requestList.add(requestMsg);
			requestList.notifyAll();
		}

	}

	public void pushResponse(Object responseMsg) {
		synchronized (responseList) {
			responseList.add(responseMsg);
			responseList.notifyAll();
		}
	}

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

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

}

⌨️ 快捷键说明

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