TimeUnit
TimeUnit
là một enum trong Java thuộc gói java.util.concurrent
, được sử dụng để định nghĩa các đơn vị thời gian và cung cấp các phương thức tiện ích để chuyển đổi giữa các đơn vị thời gian khác nhau. Dưới đây là một số thông tin chi tiết về TimeUnit
:
Các Giá Trị Enum của TimeUnit
TimeUnit
bao gồm các giá trị sau, biểu diễn các đơn vị thời gian khác nhau:
NANOSECONDS
: Nanosecond (1/1,000,000,000 của giây)MICROSECONDS
: Microsecond (1/1,000,000 của giây)MILLISECONDS
: Millisecond (1/1,000 của giây)SECONDS
: Second (giây)MINUTES
: Minute (phút)HOURS
: Hour (giờ)DAYS
: Day (ngày)
Các Phương Thức Chính của TimeUnit
convert(long sourceDuration, TimeUnit sourceUnit):
Chuyển đổi một khoảng thời gian từ một đơn vị này sang một đơn vị khác.
Ví dụ:
long minutes = TimeUnit.HOURS.convert(2, TimeUnit.DAYS); // 48 hours
toNanos(long duration):
Chuyển đổi một khoảng thời gian sang nanoseconds.
long nanos = TimeUnit.SECONDS.toNanos(1); // 1 second = 1,000,000,000 nanoseconds
Sử Dụng TimeUnit
trong Thread Sleep hoặc Await
TimeUnit
trong Thread Sleep hoặc AwaitTimeUnit
cũng có thể được sử dụng để làm cho thread ngủ hoặc chờ trong một khoảng thời gian cụ thể:sleep(long timeout): Làm thread ngủ trong một khoảng thời gian được chỉ định.
TimeUnit.SECONDS.sleep(1); // Thread ngủ trong 1 giây
awaitNanos(long nanosTimeout): Dùng trong các cơ chế đồng bộ để chờ một khoảng thời gian.
LockSupport.parkNanos(TimeUnit.MILLISECONDS.toNanos(500)); // Chờ 500 milliseconds
Ví dụ:
import java.util.concurrent.TimeUnit;
public class TimeUnitExample {
public static void main(String[] args) {
long hours = TimeUnit.DAYS.toHours(1);
System.out.println("1 ngày có " + hours + " giờ");
long millis = TimeUnit.SECONDS.toMillis(10);
System.out.println("10 giây có " + millis + " milliseconds");
try {
System.out.println("Ngủ trong 2 giây...");
TimeUnit.SECONDS.sleep(2);
System.out.println("Dậy rồi!");
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}
TimeUnit
giúp cho việc xử lý thời gian trong các ứng dụng Java trở nên dễ dàng và ngắn gọn hơn, đặc biệt là trong lập trình đa luồng và các tác vụ cần quản lý thời gian.
Last updated