Exercise: Threads

Questions for: Threads

Which two of the following methods are defined in class Thread?
  1. start()
  2. wait()
  3. notify()
  4. run()
  5. terminate()
A:
1 and 4
B:
2 and 3
C:
3 and 4
D:
2 and 4
Answer: A

(1) and (4). Only start() and run() are defined by the Thread class.

(2) and (3) are incorrect because they are methods of the Object class. (5) is incorrect because there's no such method in any thread-related class.

Which cannot directly cause a thread to stop executing?
A:
Calling the SetPriority() method on a Thread object.
B:
Calling the wait() method on an object.
C:
Calling notify() method on an object.
D:
Calling read() method on an InputStream object.
Answer: C

Option C is correct. notify() - wakes up a single thread that is waiting on this object's monitor.

class X implements Runnable 
{ 
    public static void main(String args[]) 
    {
        /* Missing code? */
    } 
    public void run() {} 
}
Which of the following line of code is suitable to start a thread ?
A:
Thread t = new Thread(X);
B:
Thread t = new Thread(X); t.start();
C:
X run = new X(); Thread t = new Thread(run); t.start();
D:
Thread t = new Thread(); x.run();
Answer: C

Option C is suitable to start a thread.

Which three are methods of the Object class?
  1. notify();
  2. notifyAll();
  3. isInterrupted();
  4. synchronized();
  5. interrupt();
  6. wait(long msecs);
  7. sleep(long msecs);
  8. yield();
A:
1, 2, 4
B:
2, 4, 5
C:
1, 2, 6
D:
2, 3, 4
Answer: C

(1), (2), and (6) are correct. They are all related to the list of threads waiting on the specified object.

(3), (5), (7), and (8) are incorrect answers. The methods isInterrupted() and interrupt() are instance methods of Thread.

The methods sleep() and yield() are static methods of Thread.

D is incorrect because synchronized is a keyword and the synchronized() construct is part of the Java language.

Which two are valid constructors for Thread?
  1. Thread(Runnable r, String name)
  2. Thread()
  3. Thread(int priority)
  4. Thread(Runnable r, ThreadGroup g)
  5. Thread(Runnable r, int priority)
A:
1 and 3
B:
2 and 4
C:
1 and 2
D:
2 and 5
Answer: C

(1) and (2) are both valid constructors for Thread.

(3), (4), and (5) are not legal Thread constructors, although (4) is close. If you reverse the arguments in (4), you'd have a valid constructor.

Ad Slot (Above Pagination)
Quiz