?? messagequeue.java
字號:
package connex.core.Presence;
import java.util.Vector;
import net.jxta.endpoint.Message;
class MessageQueue extends Thread {
private Vector messages = new Vector();
/**
* @directed
*/
private MessageProcessor mprocessor;
private boolean start = true;
protected MessageQueue(MessageProcessor mprocessor) {
this.mprocessor = mprocessor;
}
protected void stopIt() {
start = false;
}
public void run() {
Message message = null;
while (start) {
try {
message = pop();
} catch (InterruptedException e) {
break;
}
if (message != null) {
mprocessor.process(message);
}
}
}
public synchronized void push(Message message) {
boolean shouldNotify = (messages.size() == 0);
// add the message to the end of the vector
messages.addElement(message);
if (shouldNotify) {
// notify the thread
notify();
}
}
private synchronized Message pop() throws InterruptedException {
Message message = null;
// wait for an element
wait();
}
// pop the first element off of the vector
if (messages.size() > 0) {
message = (Message) messages.firstElement();
messages.removeElementAt(0);
}
return message;
}
}
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -