从主线程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以毫秒为单位。 它在我的主要方法中工作正常,所以要找出你的问题,如果你能在这里提供你的代码会更好。