internalmessageio.java
来自「ALGAE是一个快速创建算法演示的框架。目前支持的算法实现语言包括java和c」· Java 代码 · 共 117 行
JAVA
117 行
/** * InternalMessageIO.java * * * Created: Fri Jun 30 * * @author Steven Zeil * @version */package edu.odu.cs.zeil.AlgAE.Server;import edu.odu.cs.zeil.AlgAE.Debug;import edu.odu.cs.zeil.AlgAE.Queue;import edu.odu.cs.zeil.AlgAE.Message;import edu.odu.cs.zeil.AlgAE.MessageIO;import edu.odu.cs.zeil.AlgAE.ParameterizedMessage;public class InternalMessageIO{ class QueuedMessageIO implements MessageIO { private Queue inq; private Queue outq; QueuedMessageIO (Queue in, Queue out) { inq = in; outq = out; } /** * Send a message */ public void send (ParameterizedMessage pmsg) { boolean wasEmpty; synchronized (outq) { wasEmpty = outq.isEmpty(); outq.addToRear (pmsg); if (wasEmpty) outq.notifyAll(); } } /** * Read a message **/ public ParameterizedMessage read() { boolean noMsgWaiting = true; ParameterizedMessage pmsg = null; while (noMsgWaiting) { synchronized (inq) { noMsgWaiting = inq.isEmpty(); if (noMsgWaiting) { try { inq.wait(); } catch (java.lang.InterruptedException e) { } } else { pmsg = (ParameterizedMessage)inq.getFront(); inq.removeFront(); } } } return pmsg; } public void close() { } } private Queue q1; private Queue q2; private QueuedMessageIO serverio; private QueuedMessageIO clientio; public InternalMessageIO() { q1 = new Queue(); q2 = new Queue(); serverio = new QueuedMessageIO(q1,q2); clientio = new QueuedMessageIO(q2,q1); } public MessageIO serverIO() { return serverio; } public MessageIO clientIO() { return clientio; } } // InternalMessageIO
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?