|
|||||||||
| 上一个类 下一个类 | 框架 无框架 | ||||||||
| 摘要: 嵌套 | 字段 | 构造方法 | 方法 | 详细信息: 字段 | 构造方法 | 方法 | ||||||||
java.lang.Objectorg.jboss.netty.channel.socket.oio.OioClientSocketChannelFactory
public class OioClientSocketChannelFactory

创建一个基于SocketChannel的客户端阻塞I/O的ClientSocketChannelFactory
.它利用好的旧的阻塞I/O API,众所周知当它服务人数较少的连接时能产生更好的吞吐量和延迟.
在OioClientSocketChannelFactory里只有一种类型的线程;worker线程.
就像传统的阻塞I/O线程模型一样,每个连接的Channel都有一个专用的worker线程.
Worker线程会从在创建一个OioClientSocketChannelFactory时指定的Executor
获得(如. workerExecutor.)因此,你必须确定指定的Executor可以被足够多的线程使用.
Worker线程被延迟的获取,然后当没有任何东西需要处理时释放.当worker线程被释放,所有关联的资源也被释放.因此,要正常的关闭一个服务, 你应该做到以下几点:
ChannelGroup.close()关闭工厂创建的所有通道,然后releaseExternalResources().RejectedExecutionException
并且相应的资源可能没有适当的释放.
通过该工厂创建的SocketChannel不支持异步操作.任何I/O请求如"connect"和"write"
都会以阻塞方式执行.
| 构造方法摘要 | |
|---|---|
OioClientSocketChannelFactory(java.util.concurrent.Executor workerExecutor)
创建一个实例. |
|
| 方法摘要 | |
|---|---|
SocketChannel |
newChannel(ChannelPipeline pipeline)
创建和打开一个新的 Channel,并使用指定的 ChannelPipeline附加到新的
Channel. |
void |
releaseExternalResources()
释放该工厂依赖的外部资源. |
| 从类 java.lang.Object 继承的方法 |
|---|
equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
| 构造方法详细信息 |
|---|
public OioClientSocketChannelFactory(java.util.concurrent.Executor workerExecutor)
workerExecutor - 执行I/O worker线程的Executor| 方法详细信息 |
|---|
public SocketChannel newChannel(ChannelPipeline pipeline)
ChannelFactory 复制的描述Channel,并使用指定的 ChannelPipeline附加到新的
Channel.
ChannelFactory 中的 newChannelClientSocketChannelFactory 中的 newChannelpipeline - 准备附加到新Channel的ChannelPipeline
public void releaseExternalResources()
ChannelFactory 复制的描述Executor就是外部资源.
当这些资源不被该工厂使用或不是应用程序的一部分时
,你可以很方便的调用该方法去释放所有外部资源.然而如果一个由该工厂管理的打开通道资源被释放时会导致意料.
ChannelFactory 中的 releaseExternalResourcesExternalResourceReleasable 中的 releaseExternalResources
|
|||||||||
| 上一个类 下一个类 | 框架 无框架 | ||||||||
| 摘要: 嵌套 | 字段 | 构造方法 | 方法 | 详细信息: 字段 | 构造方法 | 方法 | ||||||||