基本上,我有一個運行在控制檯中的Java線程,這個線程將無限移動,除非用戶輸入「halt」,程序應該停止線程並停止控制檯。如何在用戶命令停止的Java命令提示符中停止線程?
這裏就是線程樣貌似的set_interval部分(用戶可以給的輸入他們是如何的間隔長要在線程之間):
public void set_interval(int mins, int secs) {
time = (mins * 60000) + (1000 * secs);
Timer timer = new Timer();
timer.schedule(new TimerTask() {
public void run() {
try {
count += counter;
String name = getName();
Date date = new Date();
System.out.print("\n" + "Thread:" + name + " " + date + " - counter: " + count);
Thread.sleep(time);
} catch(InterruptedException e){
System.out.print(e);
}
}, 0, time);
}
,這裏是什麼樣的主要款式:像: }else if (checkLine.equals("halt")){ Thread test = new Thread("name"); test.interrupt(); break; }
我看每個地方說要使用中斷,但這個中斷似乎並沒有工作。任何人有任何想法?或者我只是忽略了一些小細節?有機會我需要使用套接字來解決這個問題。
我不使用可運行,可我還是用ScheduleExecutorService? – user1758415
您可以將run()方法中的內容放入Runnable中,並刪除Thread.sleep,因爲它不需要。 –