java excutor netty_java – Netty 4,使用ExecutorService

我想在我的应用程序中重用ExecutorService.

我尝试用netty 4重现上面发布的代码,但我没有找到办法,我也谷歌搜索了很多,但似乎我们不能提供ExecutorService到bootstrap或NioEventLoopGroup对象.

例如,netty 3就是如何共享executorservice:

ExecutorService executor = Executors.newCachedThreadPool();

NioClientBossPool clientBossPool = new NioClientBossPool(executor, clientBossCount);

NioServerBossPool serverBossPool = new NioServerBossPool(executor, serverBossCount);

NioWorkerPool workerPool = new NioWorkerPool(executor, workerCount);

ChannelFactory cscf = new NioClientSocketChannelFactory(clientBossPool, workerPool);

ChannelFactory sscf = new NioServerSocketChannelFactory(serverBossPool, workerPool);

...

ClientBootstrap cb = new ClientBootstrap(cscf);

ServerBootstrap sb = new ServerBootstrap(sscf);

但是对于netty 4,据我所知你不能使用执行器服务…

你必须提供像NioEventLoopGroup这样的EventLoop实现,但我真的很想

使用我将在我的应用程序中使用的通用executorService.因为我希望在一个线程池中让线程做不同类型的工作:计算,网络与netty …

EventLoopGroup bossGroup = new NioEventLoopGroup(); // (1)

EventLoopGroup workerGroup = new NioEventLoopGroup()

ServerBootstrap b = new ServerBootstrap(); // (2)

b.group(bossGroup, workerGroup)

.channel(NioServerSocketChannel.class) // (3)

.childHandler(new ChannelInitializer() { // (4)

@Override

public void initChannel(SocketChannel ch) throws Exception {

ch.pipeline().addLast(new DiscardServerHandler());

}

})

.option(ChannelOption.SO_BACKLOG, 128) // (5)

.childOption(ChannelOption.SO_KEEPALIVE, true); // (6)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值