创建线程有两种方法:继承Thread类和实现Runnable接口。
方法一:继承 Thread 类,覆盖方法 run(), 我们在创建的 Thread 类的子类中重写 run() ,加入线程所要执行的代码即可。下面是一个例子:
import java.sql.Timestamp;
/**
* 第N次线程
*
* @version 1.0
* @author 点子二木
* @date 2008-3-24
* @right Copyright (C), 2008
*/
import java.io.*;
class ThreadTest extends Thread {
int count = 1, number;
public ThreadTest(int num) {
number = num;
System.out.println("创建线程 " + number);
}
public void run() {
while (true) {
System.out.println("线程 " + number + ":计数 " + count);
if (++count == 6)
return;
}
}
public static void main(String args[]) {
for (int i = 0; i < 5; i++)
new ThreadTest(i + 1).start();
}
}
方法二:实现 Runnable 接口
Runnable 接口只有一个方法 run(),我们声明自己的类实现 Runnable 接口并提供这一方法,将我们的线程代码写入其中,就完成了这一部分的任务。但是 Runnable 接口并没有任何对线程的支持,我们还必须创建 Thread 类的实例,这一点通过 Thread 类的构造函数public Thread(Runnable target);来实现。下面是一个例子:
public class MyThread implements Runnable {
int count= 1, number;
public MyThread(int num) {
number = num;
System.out.println("创建线程 " + number);
}
public void run() {
while(true) {
System.out.println("线程 " + number + ":计数 " + count);
if(++count== 6) return;
}
}
public static void main(String args[]) {
for(int i = 0; i < 5; i++) new Thread(new MyThread(i+1)).start();
}
}
运行结果每次不一样!
两种方法各有千秋,可以灵活运用。