Threads and Concurrency
The Java platform has supported
multithreaded
or concurrent programming with the
Thread class and
Runnable
interface since Java 1.0. Java 5.0
bolsters that support with a comprehensive set of new utilities for
concurrent programming.
Creating, Running, and Manipulating Threads
Java
makes it easy to define and
work with multiple threads of execution within a program.
java.lang.Thread
is the fundamental thread class in the
Java API. There are two ways to define a thread. One is to subclass
Thread, override the run(
)
method and then instantiate your
Thread subclass. The other is to define a class
that implements the Runnable method (i.e., define
a run() method) and then pass an instance of this
Runnable object to the Thread()
constructor. In either case, the result is a
Thread object, where the run()
method is the body of the thread. When you call the
start() method of the Thread
object, the interpreter creates a new thread to execute the
run() method. This new thread continues to run
until the run( ) method exits. Meanwhile, the
original thread continues running itself, starting with the statement
following the start()
method.
The following code demonstrates:
final List list; // Some long unsorted list of objects; initialized elsewhere /** A Thread class for sorting a List in the background */ class BackgroundSorter extends Thread { List l; public BackgroundSorter(List l) { this.l = l; } // Constructor public void run() { Collections.sort(l); } // ...Become an O’Reilly member and get unlimited access to this title plus top books and audiobooks from O’Reilly and nearly 200 top publishers, thousands of courses curated by job role, 150+ live events each month,
and much more.
Read now
Unlock full access