【发布时间】:2015-01-23 13:18:47
【问题描述】:
我的程序完成后,我遇到了结束线程的问题。我运行一个线程时钟对象,它工作得很好,但是当时间'=='一个小时似乎工作时我需要结束所有线程我只需要知道如何结束它们。这是我拥有的代码示例,除了在此代码上方定义的一个 int 之外,这是在 run 方法中运行的唯一内容。
@Override
public void run()
{
int mins = 5;
while(clock.getHour() != 1)
{
EnterCarPark();
if(clock.getMin() >= mins)
{
System.out.println("Time: " + clock.getTime() + " " + entryPoint.getRoadName() + ": " + spaces.availablePermits() + " Spaces");
mins += 5;
}
}
}
但是,当您继续观察在 netbeans 的调试模式下运行的线程时,它们会在一个小时后继续运行,不知道如何解决这个问题。我已经尝试过中断调用,但它似乎什么也没做。
【问题讨论】:
-
抛出 InterruptedException 并捕获它:) 在多线程程序中调试将不正确
-
你确定循环结束了吗?
-
是的,我确定循环结束
-
@SME gc 从不收集正在运行的线程。
-
@SME 与所有其他对象相同,但这不会导致线程继续运行。
标签: java multithreading