基本上,我有一个运行在控制台中的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,因为它不需要。 –