waitqueue.java

来自「RFID复杂事件处理系统的研究实验」· Java 代码 · 共 96 行

JAVA
96
字号
package test1;

import java.util.LinkedList;

public class WaitQueue implements EventReceiver{
	
	private LinkedList<P_Event> queue=new LinkedList<P_Event>();
	private LinkedList<P_Event> queueq=new LinkedList<P_Event>();

	
	WaitQueue(){}
	

	public synchronized void acceptEvent(P_Event e)
	{
		queue.addLast(e);
		/*int i;
		for(i=0;i<queueq.size();i++)
		{
			if(queueq.get(i).gettimestamp()>e.gettimestamp())
				break;
		}
		queueq.add(i,e);*/
		this.notify();
	}
	public synchronized void acceptEvents(LinkedList<P_Event> pel)
	{
		queue.addAll(pel);
		for(int i=0;i<pel.size();i++)
		{
			/*int ii;
			POINT:for(ii=0;ii<queueq.size();ii++)
			{
				if(queueq.get(ii).gettimestamp()>pel.get(i).gettimestamp())
					break POINT;
			}
			queueq.add(ii,pel.get(i));*/
			this.notify();
		}
	}
	
	public synchronized void acceptEventss(LinkedList<P_Event> pel)
	{
		/*for(int i=0;i<pel.size();i++)
		{
			int ii;
			POINT:for(ii=0;ii<queueq.size();ii++)
			{
				if(queueq.get(ii).gettimestamp()>pel.get(i).gettimestamp())
					break POINT;
			}
			queueq.add(ii,pel.get(i));
			
		}*/
		queueq.addAll(pel);
	}
	public synchronized P_Event getEvent()
	{
		try
		{
			if(queue.size()==0) 
			{
				this.wait();
			}			
		}
	    catch (InterruptedException e)
	    {
		    // TODO Auto-generated catch block
		    e.printStackTrace();
	    }
	    
	    return queue.removeFirst();
	    
	}

	
	public int getsize()
	{
		return queue.size();
	}
	public LinkedList<P_Event> getQueue() {
		return queue;
	}


	public LinkedList<P_Event> getQueueq() {
		return queueq;
	}


	public void setQueueq(LinkedList<P_Event> queueq) {
		this.queueq = queueq;
	}

}

⌨️ 快捷键说明

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