1. Question: Which method registers a thread in a thread scheduler?

    A
    run();

    B
    construct();

    C
    start();

    D
    register();

    Note: Option C is correct. The start() method causes this thread to begin execution; the Java Virtual Machine calls the run method of this thread. Option A is wrong. The run() method of a thread is like the main() method to an application. Starting the thread causes the object's run method to be called in that separately executing thread. Option B is wrong. There is no construct() method in the Thread class. Option D is wrong. There is no register() method in the Thread class.
    1. Report
  2. Question: Assume the following method is properly synchronized and called from a thread A on an object B: wait(2000); After calling this method, when will the thread A become a candidate to get another turn at the CPU?

    A
    After thread A is notified, or after two seconds.

    B
    After the lock on B is released, or after two seconds.

    C
    Two seconds after thread A is notified.

    D
    Two seconds after lock B is released.

    Note: Option A. Either of the two events (notification or wait time expiration) will make the thread become a candidate for running again. Option B is incorrect because a waiting thread will not return to runnable when the lock is released, unless a notification occurs. Option C is incorrect because the thread will become a candidate immediately after notification, not two seconds afterwards. Option D is also incorrect because a thread will not come out of a waiting pool just because a lock has been released.
    1. Report
  3. Question: Which of the following will not directly cause a thread to stop?

    A
    notify()

    B
    wait()

    C
    InputStream access

    D
    sleep()

    Note: Option A is correct. notify() - wakes up a single thread that is waiting on this object's monitor. Option B is wrong. wait() causes the current thread to wait until another thread invokes the notify() method or the notifyAll() method for this object. Option C is wrong. Methods of the InputStream class block until input data is available, the end of the stream is detected, or an exception is thrown. Blocking means that a thread may stop until certain conditions are met. Option D is wrong. sleep() - Causes the currently executing thread to sleep (temporarily cease execution) for a specified number of milliseconds. The thread does not lose ownership of any monitors.
    1. Report
  4. Question: Which class or interface defines the wait(), notify(),and notifyAll() methods?

    A
    Object

    B
    Thread

    C
    Runnable

    D
    Class

    Note: The Object class defines these thread-specific methods. Option B, C, and D are incorrect because they do not define these methods. And yes, the Java API does define a class called Class, though you do not need to know it for the exam.
    1. Report
  5. Question: 
    public class MyRunnable implements Runnable 
    {
        public void run() 
        {
            // some code here
        }
    }
    which of these will create and start this thread?

    A
    new Runnable(MyRunnable).start();

    B
    new Thread(MyRunnable).run();

    C
    new Thread(new MyRunnable()).start();

    D
    new MyRunnable().start();

    Note: Because the class implements Runnable, an instance of it has to be passed to the Thread constructor, and then the instance of the Thread has to be started. A is incorrect. There is no constructor like this for Runnable because Runnable is an interface, and it is illegal to pass a class or interface name to any constructor. B is incorrect for the same reason; you can't pass a class or interface name to any constructor. D is incorrect because MyRunnable doesn't have a start() method, and the only start() method that can start a thread of execution is the start() in the Thread class.
    1. Report
Copyright © 2024. Powered by Intellect Software Ltd