Java的TimeUnit枚举对许多与时间相关的不同任务很有用,而不仅仅是并发; 和其他与时间相关的课程Date是其中的一部分java.util.那么为什么TimeUnit会员java.util.concurrent呢?
它可能是由于历史原因而存在的:
TimeUnit 广泛用于并发实用程序有趣的是,在Java 8中的新日期API有一个ChronoUnit枚举,其类似于TimeUnit枚举,但适用于日期和时间。特别是, aChronoUnit可以转换为 a Duration。
除了提供处理不同时间粒度的方法外,TimeUnit 还提供线程感知方法,例如timedJoin:
public void timedJoin(Thread thread,
long timeout)
throws InterruptedException
我认为该类最初是为了帮助完成常见的并发编程任务,例如延迟执行。目前它有两个不同的功能(管理时间粒度;将时间概念应用于线程问题),这违反了单一职责原则。
考虑到 TimeUnit 在并发代码之外的实用性和流行性,一个更简洁的解决方案可能是java.util.TimeUnit管理时间粒度的枚举和java.util.concurrent线程中应用程序的单独类。
| 归档时间: |
|
| 查看次数: |
729 次 |
| 最近记录: |