Netty工具类HashedWheelTimer
http://my.oschina.net/haogrgr/blog/489320
netty中的Timer管理,使用了的Hashed time Wheel的模式,Time Wheel翻译为时间轮,是用于实现定时器timer的经典算法。
我们看看netty的HashedWheelTimer的一个测试的例子,先new一个HashedWheelTimer,然后调用它的newTimeout方法,这个方法的声明是这样的:
/**
* Schedules the specified {@link TimerTask} for one-time execution after
* the specified delay.
*
* @return a handle which is associated with the specified task
*
* @throws IllegalStateException if this timer has been
* {@linkplain #stop() stopped} already
*/
Timeout newTimeout(TimerTask task, long delay, TimeUnit unit);
这个方法需要一个TimerTask对象以知道当时间到时要执行什么逻辑,然后需要delay时间数值和TimeUnit时间的单位,像下面的例子中,我们在timer到期后会打印字符串,第一个任务是5秒后开始执行,第二个10秒后开始执行。
import org.jboss.netty.util.HashedWheelTimer;
import org.jboss.netty.util.Timeout;
import org.jboss.netty.util.Timer;
import org.jboss.netty.util.TimerTask;
import java.util.concurrent.TimeUnit;
/**
* 12-6-6 下午2:46
*
* @author jiaguotian Copyright 2012 Sohu.com Inc. All Rights Reserved.
*/
public class TimeOutTest {
public static void main(String[] argv) {
final Timer timer = new HashedWheelTimer();
timer.newTimeout(new TimerTask() {
public void run(Timeout timeout) throws Exception {
System.out.println("timeout 5");
}
}, 5, TimeUnit.SECONDS);
timer.newTimeout(new TimerTask() {
public void run(Timeout timeout) throws Exception {
System.out.println("timeout 10");
}
}, 10, TimeUnit.SECONDS);
}
}
相关推荐
Netty 是一个高性能、异步事件驱动的网络应用程序框架,用于快速开发可维护...无论是构建高性能的服务器还是编写高效的客户端,Netty都会成为你强大的工具。在实践中,不断探索和优化,你会发现Netty的潜力远不止于此。
Netty中的`HashedWheelTimer`就是一种实现时间轮的时间管理工具,它采用的是分桶轮算法,通过一个固定的时钟间隔(TickDuration)和总的桶数(WheelSize)来确定任务的延迟执行时间。你可以设置不同的TickDuration和...
neety4.0版本的jar包 ,最近netty5听说不稳定 所以现在弄来了4,0的版本 供大家参考
通过使用Netty 开发工具包,开发者可以快速搭建网络服务,专注于业务逻辑,而无需关心底层的网络通信细节。Netty-3.2.7.Final.jar 是Netty 3.2系列的一个版本,包含了该版本所有功能的实现。虽然这个版本相对较旧,...
NIO socket开发,netty4.0工具包。
Netty是一款高性能、异步事件驱动的网络应用框架,它为Java开发人员提供了构建高性能、可扩展的网络应用程序的强大工具。在"Netty数据转发工具"的场景中,描述提到的"Netty实现端口数据转发:3000进4000出"意味着...
【TCP调试助手(基于Netty)】是一款专为Windows平台设计的TCP协议调试软件,它利用了Netty这一高性能、异步...通过深入理解和运用Netty框架,可以进一步提升TCP调试工具的功能性和灵活性,满足更多复杂的网络调试需求。
Netty 工具包(netty-tools)则是一系列与 Netty 相关的辅助工具和示例,旨在帮助开发者更好地理解和使用 Netty 框架。 在 `netty-tools-master` 这个压缩包中,我们可以预期包含以下几个方面的内容: 1. **源代码...
java netty接收串口数据 开启windows串口工具 发送串口数据调试助手
在Java中,Netty 提供了丰富的类和接口,使得开发者能够便捷地构建网络通信应用。以下是对Netty中一些关键类和使用步骤的详细解释: 1. **Channel** - Channel 是Netty中的核心概念,它代表了网络连接,可以是TCP、...
基于 Java Netty实现的可用于内网穿透的代理工具.zip基于 Java Netty实现的可用于内网穿透的代理工具.zip基于 Java Netty实现的可用于内网穿透的代理工具.zip基于 Java Netty实现的可用于内网穿透的代理工具.zip基于...
在“netty简单聊天室”这个项目中,Netty被用来构建一个简单的验证聊天工具,允许用户通过客户端进行实时通信。下面将详细阐述Netty在聊天室中的应用及其相关知识点。 1. **Netty架构**: Netty的核心是它的...
综上所述,Netty凭借其异步I/O、高效的缓冲区管理、丰富的协议支持和友好的API,成为Java领域中开发网络应用的首选工具。无论你是初学者还是经验丰富的开发者,Netty都能为你带来高效、稳定的网络编程体验。
此外,还会涉及ByteBuf,这是Netty提供的高效内存管理工具,用于替代Java的ByteBuffer,提供更友好的API和更好的性能。 Netty的案例实战部分可能会涵盖常见网络协议的实现,如HTTP、HTTPS、FTP、WebSocket等,这些...
总的来说,对于Java开发者来说,掌握Netty框架能够极大地提升网络编程的效率和质量,尤其是在需要处理高并发、低延迟的场景下,Netty更是不可或缺的工具。通过阅读这本书,你可以深入理解Netty的工作原理,并将这些...
此外,Netty的ByteBuf类是高效内存管理的关键,它提供了缓冲区的读写操作,避免了不必要的数据拷贝。 在高级特性部分,书籍会涉及Netty的编解码器,如LineBasedFrameDecoder用于处理以换行符分隔的协议,以及...
2. **Netty架构**:Netty采用了反应器模式,包含Bootstrap(引导类)、ServerBootstrap(服务器引导类)、Channel(通道)、EventLoop(事件循环)、Pipeline(处理链)等组件,构建了高效的事件驱动模型。...
netty使用自带工具类实现断线重连和心跳包
2. **高效性**:Netty通过减少对象创建和内存复制来优化性能,例如,它的ByteBuf类提供了高效的字节缓冲区管理。 3. **灵活性**:Netty支持多种网络协议,如TCP、UDP、HTTP、WebSocket、FTP等,以及自定义协议。它...
Netty基础,用于学习Netty,参考黑马程序员的netty教程