Home arrow Java arrow Page 3 - Multithreading in Java

Multithreading in Java

Multithreading allows two parts of the same program to run concurrently. This article discusses how to pull off this performance-improving feat in Java. It is excerpted from chapter 10 of the book Java Demystified, written by Jim Keogh (McGraw-Hill/Osborne, 2004; ISBN: 0072254548).

Author Info:
By: McGraw-Hill/Osborne
Rating: 4 stars4 stars4 stars4 stars4 stars / 535
August 04, 2005
  1. · Multithreading in Java
  2. · Overhead
  3. · The Thread Classes and the Runnable Interface
  4. · Creating Your Own Thread
  5. · Creating a Thread by Using extends
  6. · Using isAlive() and join()
  7. · Setting Thread Priorities
  8. · Synchronizing Threads
  9. · Using the Synchronized Statement
  10. · Suspending and Resuming Threads

print this article

Multithreading in Java - The Thread Classes and the Runnable Interface
(Page 3 of 10 )

You construct threads by using the Thread class and the Runnable interface. This means that your class must extend the Thread class or implement the Runnable interface. The Thread class defines the methods you use to manage threads. Table 10-1 contains the commonly used methods of the Thread class. Youíll see how these are used throughout the examples in this chapter.




Returns the name of the thread.


Returns the priority of the thread.


Determines whether the thread is running.


Pauses until the thread terminates.


The entry point into the thread.


Suspends a thread. This method enables you to specify the period

the thread is suspended.


Starts the thread.

Table 10-1  Commonly Used Methods Defined in the Thread Class

The Main Thread

Every Java program has one thread, even if you donít create any threads. This thread is called the main thread because it is the thread that executes when you start your program. The main thread spawns threads that you create. These are called child threads. The main thread is always the last thread to finish executing because typically the main thread needs to release a resource used by the program such as network connections.

Programmers can control the main thread by first creating a Thread object and then using method members of the Thread object to control the main thread. You create a Thread object by calling the currentThread() method. The currentThread() method returns a reference to the thread. You then use this reference to control the main thread just like you control any thread, which youíll learn how to do in this chapter.

Letís create a reference to the main thread and then change the name of the thread from main to Demo Thread. The following program shows how this is done. Hereís what is displayed on the screen when the program runs:

Current thread: Thread[main, 5,main]
Renamed Thread: Thread[Demo Thread, 5,main]
class Demo {
public static void main (String args[] ) {
Thread t = Thread.currentThread();
System.out.println("Current thread: " + t);
t.setName("Demo Thread");
System.out.println("Renamed Thread: " + t);

As you previously learned in this chapter, a thread is automatically created when you execute a program. The objective of this example is to declare a reference to a thread and then assign that reference a reference to the main thread. This is done in the first statement of the main() method.

We declare the reference by specifying the name of the class and the name for the reference, which is done in the following line of code:

Thread t

We acquire a reference to the main thread by calling the currentThread() method member of the Thread class using the following method call:


The reference returned by the currentThread() method is then assigned to the reference previously declared in the opening statement. We then display the thread on the screen:

Thread[main, 5,main]

Information within the square brackets tells us something about the thread. The first appearance of the word main is the name of the thread. The number 5 is the threadís priority, which is normal priority. The priority ranges from 1 to 10, where 1 is the lowest priority and 10 is the highest. The last occurrence of the word main is the name of the group of threads with which the thread belongs. A thread group is a data structure used to control the state of a collection of threads. You donít need to be concerned about a thread group because the Java run-time environment handles this.

The setName() method is then called to illustrate how you have control over the main thread of your program. The setName() method is a method member of the Thread class and is used to change the name of a thread. This example uses the setName() method to change the main threadís name from main to Demo Thread. The thread is once again displayed on the screen to show that the name has been changed. Hereís what is displayed:

Renamed Thread: Thread[Demo Thread, 5,main]

blog comments powered by Disqus

- Java Too Insecure, Says Microsoft Researcher
- Google Beats Oracle in Java Ruling
- Deploying Multiple Java Applets as One
- Deploying Java Applets
- Understanding Deployment Frameworks
- Database Programming in Java Using JDBC
- Extension Interfaces and SAX
- Entities, Handlers and SAX
- Advanced SAX
- Conversions and Java Print Streams
- Formatters and Java Print Streams
- Java Print Streams
- Wildcards, Arrays, and Generics in Java
- Wildcards and Generic Methods in Java
- Finishing the Project: Java Web Development ...

Watch our Tech Videos 
Dev Articles Forums 
 RSS  Articles
 RSS  Forums
 RSS  All Feeds
Write For Us 
Weekly Newsletter
Developer Updates  
Free Website Content 
Contact Us 
Site Map 
Privacy Policy 

Developer Shed Affiliates


© 2003-2019 by Developer Shed. All rights reserved. DS Cluster - Follow our Sitemap
Popular Web Development Topics
All Web Development Tutorials