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

Discussion

Which one of the following statements about calling run() directly instead of start() is true?

  • A.Calling run() directly on a Thread object executes its body in the calling thread.
  • B.Calling run() directly on a Thread object starts a second thread of execution.
  • C.Calling run() directly on a Thread object throws IllegalThreadStateException.
  • D.Calling run() directly on a Thread object is rejected by the compiler.

Answer: A

run() is an ordinary method. Invoking it yourself just runs its body on the current thread, so the work happens sequentially and no concurrency is gained. Only start() asks the JVM for a new thread, after which two threads run concurrently: the caller returns from start() while the new one executes run().

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

Post your comment

Please log in or register to post a comment.