Machine-translated by Google. Questions are authored in English.
Top

Discussion

Sample50 is run - what will be the output?

public class Sample50
{
    public static void main(String[] args) throws InterruptedException
    {
        Thread t = new Thread(() ->
        {
            long n = 0;
            while (!Thread.currentThread().isInterrupted()) n++;
            System.out.println("noticed");
        });
        t.start();
        Thread.sleep(50);
        t.interrupt();
        t.join();
    }
}

  • A.An InterruptedException is reported.
  • B.noticed
  • C.Nothing
  • D.The program never ends

Answer: B

The loop consults the interrupt status on every pass, so setting the flag makes the condition false and the thread leaves the loop and prints. Nothing is thrown, because the thread was never inside a blocking call; polling the flag is how a computation-bound task stays interruptible.

No comment is present. Be the first to comment.
Loading…

Post your comment

Please log in or register to post a comment.