Other Thread-Scheduling Methods

There are other methods in the Thread class that affect scheduling. As we’ll see, these remaining methods are not always the most useful techniques with respect to Java scheduling because of the complications that arise in the various native-thread scheduling models and their use of timesliced scheduling. In addition, two of these methods have been deprecated in Java 2 and should not be used in any version of Java. But we’ll complete our look at the API relating to thread scheduling in this section.

The suspend() and resume() Methods

There are two methods that can directly affect the state of a thread:

void suspend() (deprecated in Java 2)

Prevents a thread from running for an indefinite amount of time.

void resume() (deprecated in Java 2)

Allows a thread to run after being suspended.

The suspend() method moves a particular thread from the runnable state into the blocked state. In this case, the thread isn’t blocked waiting for a particular resource, it’s blocked waiting for some thread to resume it. The resume() method moves the thread from the blocked state to the runnable state.

In the section Section 6.1,” earlier in this chapter, we posited the existence of four thread states. Actually, the suspended state is different from the blocked state, even though there is no real conceptual difference between them. Strictly speaking, the suspend() method moves a thread to the suspended state from whatever state the thread was previously in—including a ...

Get Java Threads, Second Edition now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.