Package org.miaixz.bus.core.io.timout
Class Timeout
java.lang.Object
org.miaixz.bus.core.io.timout.Timeout
- Direct Known Subclasses:
AssignTimeout,AsyncTimeout
在放弃一项任务之前要花多少时间的策略 当一个任务 超时时,它处于未指定的状态,应该被放弃 例如,如果从源读取超时,则应关闭该源并 稍后应重试读取 如果向接收器写入超时,也是一样 适用规则:关闭洗涤槽,稍后重试
- Since:
- Java 17+
- Author:
- Kimi Liu
-
Field Summary
Fields -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescription清除最后期限清除超时final Timeout设定现在加上duration时间的截止时间long返回截止期限的 System.nanoTime()deadlineNanoTime(long deadlineNanoTime) 设置达到截止期限的 System.nanoTime() 所有操作必须在此时间之前完成。使用截止期限来设置一系列操作所花费时间的最大限度。boolean如果启用了截止期限,则返回 truevoid如果已达到截止时间或当前线程已中断,则抛出InterruptedIOException。 此方法不检测超时;应实施超时以异步中止正在进行的操作最多等待timeout时间,然后中止操作。 使用每个操作超时意味着只要向前推进,任何操作序列都不会失败。long返回以纳秒为单位的超时时间,或0表示无超时。final voidwaitUntilNotified(Object monitor)
-
Field Details
-
NONE
既不跟踪也不检测超时的空超时。在不需要超时 的情况下使用它,例如在操作不会阻塞的实现中
-
-
Constructor Details
-
Timeout
public Timeout()构建
-
-
Method Details
-
timeout
最多等待timeout时间,然后中止操作。 使用每个操作超时意味着只要向前推进,任何操作序列都不会失败。- Parameters:
timeout- 超时时间unit- 时间单位- Returns:
Timeout
-
timeoutNanos
public long timeoutNanos()返回以纳秒为单位的超时时间,或0表示无超时。 -
hasDeadline
public boolean hasDeadline()如果启用了截止期限,则返回 true -
deadlineNanoTime
public long deadlineNanoTime()返回截止期限的 System.nanoTime()- Throws:
IllegalStateException- 如果没有设定截止时间
-
deadlineNanoTime
设置达到截止期限的 System.nanoTime() 所有操作必须在此时间之前完成。使用截止期限来设置一系列操作所花费时间的最大限度。 -
deadline
设定现在加上duration时间的截止时间- Parameters:
duration- 期间unit- 时间单位- Returns:
Timeout
-
clearTimeout
清除超时 -
clearDeadline
清除最后期限 -
throwIfReached
如果已达到截止时间或当前线程已中断,则抛出InterruptedIOException。 此方法不检测超时;应实施超时以异步中止正在进行的操作- Throws:
IOException
-
waitUntilNotified
- Parameters:
monitor- 监视器- Throws:
InterruptedIOException- 异常
-