⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 messagequeue.java

📁 短信发送
💻 JAVA
字号:
/**
 * 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 + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -