在Java中,Timer類(lèi)是用于執(zhí)行計(jì)劃任務(wù)的工具類(lèi)。它允許您在指定的延遲時(shí)間后執(zhí)行任務(wù),也可以按照固定的時(shí)間間隔重復(fù)執(zhí)行任務(wù)。
Timer類(lèi)的用法如下:
創(chuàng)建一個(gè)Timer對(duì)象:Timer timer = new Timer();
使用schedule()方法執(zhí)行任務(wù)一次或者按照固定的時(shí)間間隔執(zhí)行任務(wù):
執(zhí)行任務(wù)一次:
timer.schedule(new TimerTask() {
@Override
public void run() {
// 任務(wù)邏輯
}
}, delay);
這里的delay是延遲時(shí)間,單位是毫秒。
按照固定的時(shí)間間隔執(zhí)行任務(wù):
timer.schedule(new TimerTask() {
@Override
public void run() {
// 任務(wù)邏輯
}
}, delay, period);
這里的delay是延遲時(shí)間,period是時(shí)間間隔,單位都是毫秒。
使用cancel()方法取消任務(wù)的執(zhí)行:timer.cancel();
需要注意的是,Timer類(lèi)是單線程的,如果一個(gè)任務(wù)的執(zhí)行時(shí)間過(guò)長(zhǎng),可能會(huì)影響其他任務(wù)的執(zhí)行。此外,Timer類(lèi)不適用于需要精確控制執(zhí)行時(shí)間的場(chǎng)景,因?yàn)樗芟到y(tǒng)時(shí)間的影響。在Java 5及以后的版本中,推薦使用ScheduledThreadPoolExecutor類(lèi)來(lái)替代Timer類(lèi)。