Java Tutorials - Herong's Tutorial Examples - v8.22, by Herong Yang
The "Runnable" Interface - Creating Thread Objects with Runnable Objects
This section provides a tutorial example on how to create new threads with the 'Thread' class and runnable objects, which are created with classes that implements the 'Runnable' interface.
The second way to create a new thread is to:
Here is a tutorial sample program showing you how to do this:
/* HelloRunnable.java * Copyright (c) HerongYang.com. All Rights Reserved. */ class HelloRunnable implements Runnable { public static void main(String[] a) { HelloRunnable r = new HelloRunnable(); Thread t = new Thread(r); t.start(); System.out.println("Hello world! - From the main program."); } public void run() { System.out.println("Hello world! - From a thread."); try { Thread.sleep(1000*60*60); } catch (InterruptedException e) { System.out.println("Interrupted."); } } }
Output:
Hello world! - From the main program. Hello world! - From a thread.
Note that:
May be you are wondering why we need the second way of creating a new thread, which seems to be less straight forward than the first way? The answer is that Java classes can not be extended from two different base classes. So if you are in a situation where you want to create a new class by extending an existing class to inherit some nice features of that class, and you also want to make the new class executable as a thread, you have to use the second way to implement the "Runnable" interface in your new class.
Table of Contents
Execution Process, Entry Point, Input and Output
Primitive Data Types and Literals
Bits, Bytes, Bitwise and Shift Operations
Managing Bit Strings in Byte Arrays
Reference Data Types and Variables
StringBuffer - The String Buffer Class
System Properties and Runtime Object Methods
Generic Classes and Parameterized Types
Generic Methods and Type Inference
Lambda Expressions and Method References
Java Modules - Java Package Aggregation
►Execution Threads and Multi-Threading Java Programs
What Are Processes and Threads
The "Thread" Class - Creating Thread Objects With Thread Sub Classes
►The "Runnable" Interface - Creating Thread Objects with Runnable Objects
CPU Execution Time Shared by Multiple Threads
CPU Execution Time Shared by Multiple Threads - Test Output
Application Data Shared by Multiple Threads
Application Data Shared by Multiple Threads - Test Results
interrupt() - Method to Terminate Thread
ThreadGroup Class and "system" ThreadGroup Tree
Synchronization Technique and Synchronized Code Blocks
Deadlock Condition Example Programs
Garbage Collection and the gc() Method
Assert Statements and -ea" Option