You have an application that executes the following line: Thread myT = new Thread() ; Which statements are correct? [Check all correct answers.] A. The Thread myT is now in a runnable state. B. The Thread myT has the priority of the Thread that executed the construction statement. C. If myT.start() is called, the run method in the class where the construction statement appears will be executed. D. If myT.stop() is called, the Thread can later be started with myT.start() and will execute the run method in the Thread class. Answers: B Why not C also? Thanks.
posted 12 years ago
Hi, Cathy - It's the run() method of the runnable object that gets called. When you create and start a thread, you either pass it the runnable object or the object creating the thread must be runnable (extend Thread or implement Runnable) and have a run() method that gets called. If these conditions don't exist, Thread.run() is invoked, which does nothing. From the API for Thread:
If this thread was constructed using a separate Runnable run object, then that Runnable object's run method is called; otherwise, this method does nothing and returns.
Give a man a fish, he'll eat for one day. Teach a man to fish, he'll drink all your beer.
Cheers, Jeff (SCJP 1.4, SCJD in progress, if you can call that progress...)