从主线程hibernate是抛出InterruptedException
我有执行的主线程产生新线程。 在main()的主要执行线程中,我调用Thread.sleep()
。 我什么时候得到Unhandledexception类型InterruptedException
?
我不确定为什么我会这样做。 我认为这是因为我需要对主线程的引用,所以我继续通过Thread.currentThread()
引用它。
这不是让线程睡觉的方法吗? 我需要做的是让主线程等待/睡眠/延迟,直到它再次需要工作。
您看到的是编译错误,因为您没有正确处理已检查的exception(在本例中为InterruptedException
)。 处理意味着执行以下操作之一:
1)将方法声明为throws InterruptedException
,因此需要调用者处理exception
2)使用try{..}catch(..){..}
块来捕获它。 例如:
try { Thread.sleep(1500); } catch(InterruptedException e) { System.out.println("got interrupted!"); }
InterruptedException
用于指示当前线程在执行某些阻塞操作时被外部线程中断(例如,可中断IO,等待,hibernate)
在您定义主要开始的行,只包括抛出exception 。 我也面临类似的问题,这有帮助。 包含此内容后,您不需要包含Thread.sleep(xx); 在try-catch语句中
了Thread.sleep(T);
这就是你如何让你的线程等待。 其中t以毫秒为单位。 它在我的主要方法中工作正常,所以要找出你的问题,如果你能在这里提供你的代码会更好。