⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 readerthreadimpl.java

📁 java1.6众多例子参考
💻 JAVA
字号:
/* * @(#)ReaderThreadImpl.java	1.14 05/11/17 *  * Copyright 2006 Sun Microsystems, Inc. All rights reserved. * SUN PROPRIETARY/CONFIDENTIAL. Use is subject to license terms. */package com.sun.corba.se.impl.transport;import java.io.IOException;import com.sun.corba.se.pept.transport.Connection;import com.sun.corba.se.pept.transport.ReaderThread;import com.sun.corba.se.pept.transport.Selector;import com.sun.corba.se.spi.orb.ORB;import com.sun.corba.se.spi.orbutil.threadpool.Work;import com.sun.corba.se.impl.orbutil.ORBUtility;public class ReaderThreadImpl    implements	ReaderThread,	Work{    private ORB orb;    private Connection connection;    private Selector selector;    private boolean keepRunning;    private long enqueueTime;    public ReaderThreadImpl(ORB orb, 			    Connection connection, Selector selector)    {	this.orb = orb;	this.connection = connection;	this.selector = selector;	keepRunning = true;    }    ////////////////////////////////////////////////////    //     // ReaderThread methods.    //    public Connection getConnection()    {	return connection;    }    public void close()    {	if (orb.transportDebugFlag) {	    dprint(".close: " + connection);	}	keepRunning = false;    }    ////////////////////////////////////////////////////    //    // Work methods.    //    // REVISIT - this needs alot more from previous ReaderThread.    public void doWork()    {	try {	    if (orb.transportDebugFlag) {		dprint(".doWork: Start ReaderThread: " + connection);	    }	    while (keepRunning) {		try {		    if (orb.transportDebugFlag) {			dprint(".doWork: Start ReaderThread cycle: " 			       + connection);		    }		    if (connection.read()) {			// REVISIT - put in pool;			return;		    }		    if (orb.transportDebugFlag) {			dprint(".doWork: End ReaderThread cycle: "			       + connection);		    }		} catch (Throwable t) {		    if (orb.transportDebugFlag) {			dprint(".doWork: exception in read: " + connection,t);		    }		    orb.getTransportManager().getSelector(0)			.unregisterForEvent(getConnection().getEventHandler());		    getConnection().close();		}	    }	} finally {	    if (orb.transportDebugFlag) {		dprint(".doWork: Terminated ReaderThread: " + connection);	    }	}    }    public void setEnqueueTime(long timeInMillis)     {	enqueueTime = timeInMillis;    }    public long getEnqueueTime()     {	return enqueueTime;    }    public String getName() { return "ReaderThread"; }    ////////////////////////////////////////////////////    //    // Implementation.    //    private void dprint(String msg)    {	ORBUtility.dprint("ReaderThreadImpl", msg);    }    protected void dprint(String msg, Throwable t)    {	dprint(msg);	t.printStackTrace(System.out);    }}// End of file.

⌨️ 快捷键说明

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