java濡備綍瀹炵幇闂归挓鍔熻兘
鍦↗ava涓疄鐜伴椆閽熷姛鑳藉彲浠ヤ娇鐢ㄥ畾鏃朵换鍔¤皟搴﹀櫒鏉ュ疄鐜般€傚彲浠ヤ娇鐢╦ava.util.Timer绫绘垨鑰呴€氳繃浣跨敤ScheduledExecutorService绫绘潵瀹炵幇銆?/p>
涓嬮潰鏄竴涓娇鐢⊿cheduledExecutorService绫诲疄鐜伴椆閽熷姛鑳界殑绀轰緥浠g爜锛?/p>
import java.util.Calendar;
import java.util.Date;
import java.util.concurrent.Executors;
import java.util.concurrent.ScheduledExecutorService;
import java.util.concurrent.TimeUnit;
public class AlarmClock {
public static void main(String[] args) {
ScheduledExecutorService scheduler = Executors.newScheduledThreadPool(1);
Calendar alarmTime = Calendar.getInstance();
alarmTime.set(Calendar.HOUR_OF_DAY, 8);
alarmTime.set(Calendar.MINUTE, 0);
alarmTime.set(Calendar.SECOND, 0);
long initialDelay = alarmTime.getTimeInMillis() - System.currentTimeMillis();
if (initialDelay < 0) {
initialDelay += 24 * 60 * 60 * 1000; // If the alarm time is in the past, add a day
}
scheduler.scheduleAtFixedRate(() -> {
System.out.println("Wake up! It's time to get up!");
}, initialDelay, 24 * 60 * 60 * 1000, TimeUnit.MILLISECONDS);
}
}
鍦ㄤ笂闈㈢殑浠g爜涓紝棣栧厛鍒涘缓涓€涓猄cheduledExecutorService瀵硅薄锛岀劧鍚庤缃椆閽熺殑鏃堕棿锛堣繖閲岃缃负姣忓ぉ鏃╀笂8鐐癸級锛岃绠楄窛绂讳笅娆″搷閾冪殑鏃堕棿闂撮殧锛屾渶鍚庝娇鐢╯cheduleAtFixedRate鏂规硶鏉ュ畾鏃惰Е鍙戦椆閽熴€傚湪瑙﹀彂鏃朵細鎵撳嵃涓€鏉℃秷鎭彁閱掔敤鎴疯捣搴娿€?/p>
杩欐牱灏卞疄鐜颁簡涓€涓畝鍗曠殑闂归挓鍔熻兘銆傚綋鐒讹紝鏍规嵁瀹為檯闇€姹傚彲浠ュ浠g爜杩涜杩涗竴姝ョ殑鎵╁睍鍜屽畾鍒躲€?/p>
相关问答