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

Discussion

Sample80 is run - what will be the output?

public class Sample80
{
    public static void main(String[] args) throws InterruptedException
    {
        StringBuilder out = new StringBuilder();
        Thread t = new Thread(() -> out.append("worker"));
        t.start();
        t.join();
        System.out.println(out);
    }
}

  • A.An empty line
  • B.Either worker or an empty line
  • C.A compile error
  • D.worker

Answer: D

Only one thread touches the builder at a time here, so there is no race, and the join gives main a happens-before edge that makes the worker's write visible. The variable is effectively final, which is all a lambda requires.

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

Post your comment

Please log in or register to post a comment.