views:

119

answers:

2

I'm in a Java class and our assignment is to let us explore threads in Java. So far so good except for this one this one problem. And I believe that could be because of my lack of understanding how Java threads work at the moment.

I have the main thread of execution which spawns new threads. In the main thread of execution in main() I am calling Thread.sleep(). When I do I get an Unhandled exception type InterruptedException. I am unsure of why I am getting this? I thought this was because I needed a reference to the main thread so I went ahead and made a reference to it via Thread.currentThread().

Is this not the way to have the thread sleep? What I need to do is have the main thread wait/sleep/delay till it does it required work again. Any help would be much appreciated.

A: 

Thread.sleep(t);

this is how you can make your thread wait. where t is in milliseconds. it is working fine in my main method, so to find out your problem it would be better if you can provide your code here.

GK
+3  A: 

What you see is a compilation error, due to the fact that you didn't handle the checked exception (InterruptedException in this case) properly. Handling means doing one of the following:

1) Declaring the method as "throws InterruptedException", thus requiring the caller to handle the exception

2) Catching it with a try{..}catch(..){..} block. For example:

try{
    Thread.sleep(1500);
}catch(InterruptedException e){
    System.out.println("got interrupted!");
}

InterruptedException is used to indicate that the current thread has been interrupted by an external thread while it was performing some blocking operation (e.g. interruptible IO, wait, sleep)

Eyal Schneider