// channelPipeline添加handler与删除handler实现
public static void main(String[] args) {
ChannelFactory<NioServerSocketChannel> channelFactory = new ReflectiveChannelFactory<NioServerSocketChannel>(
ObjectUtil.checkNotNull(NioServerSocketChannel.class, "channelClass")
);
Channel channel = channelFactory.newChannel();
ChannelPipeline p = channel.pipeline();
ChannelInitializer<Channel> handler = new ChannelInitializer<Channel>() {
@Override
public void initChannel(final Channel ch) {
}
@Override
public String toString() {
return "自定义hander处理器";
}
};
p.addLast(handler);
System.out.println("添加handler后第一个handler = " + p.first());
p.remove(handler);
System.out.println("移除Handler后第一个handler = " + p.first());
}
Connected to the target VM, address: '127.0.0.1:5103', transport: 'socket'
添加handler后第一个handler = 自定义hander处理器
移除Handler后第一个handler = null
Disconnected from the target VM, address: '127.0.0.1:5103', transport: 'socket'
Process finished with exit code 0
// EventLoop添加和删除runnable可执行任务
public static void main(String[] args) throws InterruptedException {
EventLoopGroup bossGroup = new NioEventLoopGroup(1);
EventLoop eventLoop = bossGroup.next();
Runnable runnable = new Runnable() {
@Override
public void run() {
System.out.println(Thread.currentThread().getName() + " " + Thread.currentThread().getStackTrace()[1].getMethodName());
}
};
eventLoop.execute(runnable); // eventLoop.taskQueue.size = 1
Thread.sleep(2*1000);
// eventLoop.taskQueue.size = 0. 被执行的任务自动移除
System.out.println(Thread.currentThread().getName() + " " + Thread.currentThread().getStackTrace()[1].getMethodName());
}
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。