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

Discussion

Sample81 is run - what will be the output?

public class Sample81
{
    public static void main(String[] args) throws InterruptedException
    {
        for (int i = 0; i < 3; i++)
        {
            final int n = i;
            Thread t = new Thread(() -> System.out.print(n));
            t.start();
            t.join();
        }
    }
}

  • A.012
  • B.000
  • C.222
  • D.Some permutation of 0, 1 and 2

Answer: A

Each thread is joined inside the loop before the next is created, so the three run strictly in turn and print in order. Copying the counter into a final local is what lets the lambda capture it; the loop variable itself is not effectively final.

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

Post your comment

Please log in or register to post a comment.