Home arrow Java arrow Page 3 - Multithreading in Java
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 / 507
August 04, 2005
TABLE OF CONTENTS:
  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
SEARCH DEVARTICLES

TOOLS YOU CAN USE

advertisement
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.

Method

Description

getName()

Returns the name of the thread.

getPriority()

Returns the priority of the thread.

isAlive()

Determines whether the thread is running.

join()

Pauses until the thread terminates.

run()

The entry point into the thread.

sleep()

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

the thread is suspended.

start()

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:

Thread.currentThread()

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 ARTICLES

- 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 ...
- Generics and Limitations in Java
- Getting Started with Java Web Development in...

Dev Articles Forums 
 RSS  Articles
 RSS  Forums
 RSS  All Feeds
Weekly Newsletter
 
Developer Updates  
Free Website Content 
Contact Us 
Site Map 
Privacy Policy 
Support 



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