📄 messagequeue.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 + -