Multithreading in Java (3)

 

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]

你可能感兴趣的:(java,thread)