|
|||||||||
上一个类 下一个类 | 框架 无框架 | ||||||||
摘要: 嵌套 | 字段 | 构造方法 | 方法 | 详细信息: 字段 | 构造方法 | 方法 |
java.lang.Object org.jboss.netty.util.HashedWheelTimer
public class HashedWheelTimer
A Timer
optimized for approximated I/O timeout scheduling.
TimerTask
. HashedWheelTimer
会在每一次tick检查是否有其他TimerTask
在该启动器后部并执行它们.
你可以在构造方法里指定更小或更大的tick持久时间增加或减少执行定时时间的准确性.在很多网络应用程序中,I/O过期时间并不需要很精确. 因此,默认的tick持久时间是100毫秒,大多数情况下你不需要修改该配置.
HashedWheelTimer
维护着一个叫做'轮子'的数据结构. 为了简单放入,一个轮子是一个包含TimerTask
的哈希方法是'任务终止'的哈希表.默认每轮tick的数量(如.轮的大小)是512.如果你想计划更多的过期值,你可以指定一个更大的值.
HashedWheelTimer
creates a new thread whenever it is instantiated and
started. Therefore, you should make sure to create only one instance and
share it across your application. One of the common mistakes, that makes your
application unresponsive, is to create a new instance in
ChannelPipelineFactory
, which results in the creation of a new thread
for every connection.
HashedWheelTimer
is based on George Varghese and Tony
Lauck's paper, 'Hashed and
Hierarchical Timing Wheels: data structures to efficiently implement a timer
facility'. More comprehensive slides are located here.
构造方法摘要 | |
---|---|
HashedWheelTimer()
使用默认的线程工厂( Executors.defaultThreadFactory()
)、默认每轮tick的数量、默认tick持久时间创建一个计时器. |
|
HashedWheelTimer(long tickDuration,
java.util.concurrent.TimeUnit unit)
使用默认的线程工厂( Executors.defaultThreadFactory() )和默认每轮tick的数量创建一个计时器. |
|
HashedWheelTimer(long tickDuration,
java.util.concurrent.TimeUnit unit,
int ticksPerWheel)
使用默认的线程工厂( Executors.defaultThreadFactory() )创建一个计时器. |
|
HashedWheelTimer(java.util.concurrent.ThreadFactory threadFactory)
使用默认每轮tick数量和默认tick持续时间创建一个计时器. |
|
HashedWheelTimer(java.util.concurrent.ThreadFactory threadFactory,
long tickDuration,
java.util.concurrent.TimeUnit unit)
使用默认每轮tick数量创建一个计时器. |
|
HashedWheelTimer(java.util.concurrent.ThreadFactory threadFactory,
long tickDuration,
java.util.concurrent.TimeUnit unit,
int ticksPerWheel)
创建一个新的计时器. |
方法摘要 | |
---|---|
Timeout |
newTimeout(TimerTask task,
long delay,
java.util.concurrent.TimeUnit unit)
在指定的延迟后执行一次计划指定的 TimerTask . |
void |
start()
明确启动一个后台线程.即使你不调用该方法,后台线程也会在需要的时候自动启动. |
java.util.Set<Timeout> |
stop()
释放使用该 Timer 获取的所有资源并取消被计划但还没有执行的所有任务. |
从类 java.lang.Object 继承的方法 |
---|
equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
构造方法详细信息 |
---|
public HashedWheelTimer()
Executors.defaultThreadFactory()
)、默认每轮tick的数量、默认tick持久时间创建一个计时器.
public HashedWheelTimer(long tickDuration, java.util.concurrent.TimeUnit unit)
Executors.defaultThreadFactory()
)和默认每轮tick的数量创建一个计时器.
tickDuration
- tick的持续时间unit
- tick持续时间的单位public HashedWheelTimer(long tickDuration, java.util.concurrent.TimeUnit unit, int ticksPerWheel)
Executors.defaultThreadFactory()
)创建一个计时器.
tickDuration
- tick的持续时间unit
- tick持续时间的单位ticksPerWheel
- 每轮tick的大小public HashedWheelTimer(java.util.concurrent.ThreadFactory threadFactory)
threadFactory
- 用于创建一个专用于TimerTask
执行的后台线程的工厂.public HashedWheelTimer(java.util.concurrent.ThreadFactory threadFactory, long tickDuration, java.util.concurrent.TimeUnit unit)
threadFactory
- 用于创建一个专用于TimerTask
执行的后台线程的工厂.tickDuration
- tick的持续时间unit
- tick持续时间的单位public HashedWheelTimer(java.util.concurrent.ThreadFactory threadFactory, long tickDuration, java.util.concurrent.TimeUnit unit, int ticksPerWheel)
threadFactory
- 用于创建一个专用于TimerTask
执行的后台线程的工厂.tickDuration
- tick的持续时间unit
- tick持续时间的单位ticksPerWheel
- 每次tick的大小方法详细信息 |
---|
public void start()
java.lang.IllegalStateException
- 如果该计时器已经被关闭,则抛出异常public java.util.Set<Timeout> stop()
Timer
复制的描述Timer
获取的所有资源并取消被计划但还没有执行的所有任务.
Timer
中的 stop
public Timeout newTimeout(TimerTask task, long delay, java.util.concurrent.TimeUnit unit)
Timer
复制的描述TimerTask
.
Timer
中的 newTimeout
|
|||||||||
上一个类 下一个类 | 框架 无框架 | ||||||||
摘要: 嵌套 | 字段 | 构造方法 | 方法 | 详细信息: 字段 | 构造方法 | 方法 |