Sample11 is run - what will be the output?
public class Sample11
{
public static void main(String[] args) throws InterruptedException
{
Thread t = new Thread(() ->
{
try
{
Thread.sleep(5000);
System.out.println("finished");
}
catch (InterruptedException e)
{
System.out.println("interrupted");
}
});
t.start();
t.interrupt();
t.join();
}
}
Answer: C
The worker spends essentially all its life inside sleep, and an interrupt delivered to a thread blocked there throws InterruptedException at once. So the catch block runs almost immediately and the program ends without waiting. The tiny race before sleep begins is closed by sleep noticing an already-set status.
Please log in or register to report this question.