Create Thread by Implementing Runnable:
The easiest way to create a thread is to create
a class that implements the Runnable interface.
To implement Runnable, a class need only
implement a single method called run ( ), which is declared like this:
public void run( )
|
You will define the code that constitutes the
new thread inside run () method. It is important to understand that run () can
call other methods, use other classes, and declare variables, just like the
main thread can.
After you create a class that implements
Runnable, you will instantiate an object of type Thread from within that class.
Thread defines several constructors. The one that we will use is shown here:
Thread(Runnable threadOb, String threadName);
|
Here, threadOb is
an instance of a class that implements the Runnable interface and the name of
the new thread is specified by threadName.
After
the new thread is created, it will not start running until you call
its start( ) method, which is declared within Thread. The start ( )
method is shown here:
void start( );
|
Example:
Here is
an example that creates a new thread and starts it running:
//
Create a new thread.
class
NewThread implements Runnable {
Thread t;
NewThread() {
// Create a new, second thread
t = new Thread(this, "Demo
Thread");
System.out.println("Child thread:
" + t);
t.start(); // Start the thread
}
//
This is the entry point for the second thread.
public
void run() {
try {
for(int i = 5; i > 0; i--) {
System.out.println("Child
Thread: " + i);
// Let the thread sleep for a
while.
Thread.sleep(500);
}
} catch (InterruptedException e) {
System.out.println("Child
interrupted.");
}
System.out.println("Exiting child
thread.");
}
}
class
ThreadDemo {
public static void main(String args[]) {
new NewThread(); // create a new thread
try {
for(int i = 5; i > 0; i--) {
System.out.println("Main
Thread: " + i);
Thread.sleep(1000);
}
} catch (InterruptedException e) {
System.out.println("Main thread
interrupted.");
}
System.out.println("Main thread
exiting.");
}
}
|
This
would produce following result:
Child
thread: Thread[Demo Thread,5,main]
Main
Thread: 5
Child
Thread: 5
Child
Thread: 4
Main
Thread: 4
Child
Thread: 3
Child
Thread: 2
Main
Thread: 3
Child Thread:
1
Exiting
child thread.
Main
Thread: 2
Main
Thread: 1
Main
thread exiting.
|
No comments:
Post a Comment