`
stephen830
  • 浏览: 3009842 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

Netty工具类HashedWheelTimer

 
阅读更多

 

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);
    
}
}

 

 

 

分享到:
评论

相关推荐

    unit3.2.rar netty基础类netty基础类netty基础类netty基础类netty基础类

    Netty 是一个高性能、异步事件驱动的网络应用程序框架,用于快速开发可维护...无论是构建高性能的服务器还是编写高效的客户端,Netty都会成为你强大的工具。在实践中,不断探索和优化,你会发现Netty的潜力远不止于此。

    基于Java+netty内置时间轮工具处理大批量定时或超时任务工具源码.zip

    Netty中的`HashedWheelTimer`就是一种实现时间轮的时间管理工具,它采用的是分桶轮算法,通过一个固定的时钟间隔(TickDuration)和总的桶数(WheelSize)来确定任务的延迟执行时间。你可以设置不同的TickDuration和...

    netty工具jar包

    neety4.0版本的jar包 ,最近netty5听说不稳定 所以现在弄来了4,0的版本 供大家参考

    netty开发工具包

    通过使用Netty 开发工具包,开发者可以快速搭建网络服务,专注于业务逻辑,而无需关心底层的网络通信细节。Netty-3.2.7.Final.jar 是Netty 3.2系列的一个版本,包含了该版本所有功能的实现。虽然这个版本相对较旧,...

    netty4.0工具包

    NIO socket开发,netty4.0工具包。

    Netty数据转发工具

    Netty是一款高性能、异步事件驱动的网络应用框架,它为Java开发人员提供了构建高性能、可扩展的网络应用程序的强大工具。在"Netty数据转发工具"的场景中,描述提到的"Netty实现端口数据转发:3000进4000出"意味着...

    TCP调试助手(基于Netty)

    【TCP调试助手(基于Netty)】是一款专为Windows平台设计的TCP协议调试软件,它利用了Netty这一高性能、异步...通过深入理解和运用Netty框架,可以进一步提升TCP调试工具的功能性和灵活性,满足更多复杂的网络调试需求。

    netty-tools:netty工具包

    Netty 工具包(netty-tools)则是一系列与 Netty 相关的辅助工具和示例,旨在帮助开发者更好地理解和使用 Netty 框架。 在 `netty-tools-master` 这个压缩包中,我们可以预期包含以下几个方面的内容: 1. **源代码...

    netty接收串口数据代码,测试串口工具

    java netty接收串口数据 开启windows串口工具 发送串口数据调试助手

    Netty主要使用类讲解.docx

    在Java中,Netty 提供了丰富的类和接口,使得开发者能够便捷地构建网络通信应用。以下是对Netty中一些关键类和使用步骤的详细解释: 1. **Channel** - Channel 是Netty中的核心概念,它代表了网络连接,可以是TCP、...

    基于 Java Netty实现的可用于内网穿透的代理工具.zip

    基于 Java Netty实现的可用于内网穿透的代理工具.zip基于 Java Netty实现的可用于内网穿透的代理工具.zip基于 Java Netty实现的可用于内网穿透的代理工具.zip基于 Java Netty实现的可用于内网穿透的代理工具.zip基于...

    netty简单聊天室

    在“netty简单聊天室”这个项目中,Netty被用来构建一个简单的验证聊天工具,允许用户通过客户端进行实时通信。下面将详细阐述Netty在聊天室中的应用及其相关知识点。 1. **Netty架构**: Netty的核心是它的...

    netty高性能异步I/O服务器/客户端开源开发工具

    综上所述,Netty凭借其异步I/O、高效的缓冲区管理、丰富的协议支持和友好的API,成为Java领域中开发网络应用的首选工具。无论你是初学者还是经验丰富的开发者,Netty都能为你带来高效、稳定的网络编程体验。

    Netty实战.epub_netty实战epub_netty实战epub_netty_

    此外,还会涉及ByteBuf,这是Netty提供的高效内存管理工具,用于替代Java的ByteBuffer,提供更友好的API和更好的性能。 Netty的案例实战部分可能会涵盖常见网络协议的实现,如HTTP、HTTPS、FTP、WebSocket等,这些...

    Netty实战 电子版.pdf_java_netty_服务器_

    总的来说,对于Java开发者来说,掌握Netty框架能够极大地提升网络编程的效率和质量,尤其是在需要处理高并发、低延迟的场景下,Netty更是不可或缺的工具。通过阅读这本书,你可以深入理解Netty的工作原理,并将这些...

    Netty进阶之路-跟着案例学Netty

    此外,Netty的ByteBuf类是高效内存管理的关键,它提供了缓冲区的读写操作,避免了不必要的数据拷贝。 在高级特性部分,书籍会涉及Netty的编解码器,如LineBasedFrameDecoder用于处理以换行符分隔的协议,以及...

    跟闪电侠学Netty:Netty即时聊天实战与底层原理-book-netty.zip

    2. **Netty架构**:Netty采用了反应器模式,包含Bootstrap(引导类)、ServerBootstrap(服务器引导类)、Channel(通道)、EventLoop(事件循环)、Pipeline(处理链)等组件,构建了高效的事件驱动模型。...

    netty 断线重连+心跳

    netty使用自带工具类实现断线重连和心跳包

    netty-netty-4.1.69.Final.tar.gz

    2. **高效性**:Netty通过减少对象创建和内存复制来优化性能,例如,它的ByteBuf类提供了高效的字节缓冲区管理。 3. **灵活性**:Netty支持多种网络协议,如TCP、UDP、HTTP、WebSocket、FTP等,以及自定义协议。它...

    Netty基础,用于学习Netty,参考黑马程序员的netty教程

    Netty基础,用于学习Netty,参考黑马程序员的netty教程

Global site tag (gtag.js) - Google Analytics