package com.github.shansun.sparrow.actor.internal;
import java.util.Queue;
import java.util.concurrent.ConcurrentLinkedQueue;
import com.github.shansun.sparrow.actor.api.MessageQueue;
/**
* <b>基于内存的消息队列。</b> <br>
* 每条处理线程会对应一个私有的消息队列。 <br>
* 在发送消息的时候,会随机进入某一个私有队列中。
*
* @author: lanbo <br>
* @version: 1.0 <br>
* @date: 2012-7-20
*/
public class MemMessageQueue implements MessageQueue<MessageWrapper> {
/** 使用非阻塞队列保存消息 */
private Queue<MessageWrapper> msgQueue = new ConcurrentLinkedQueue<MessageWrapper>();
public static MemMessageQueue create() {
return new MemMessageQueue();
}
@Override
public MessageWrapper poll() {
return msgQueue.poll();
}
@Override
public boolean add(MessageWrapper msg) {
return msgQueue.add(msg);
}
@Override
public int size() {
return msgQueue.size();
}
}