创建一个线程,最简单的方法是创建一个实现 Runnable 接口的类。
为了实现 Runnable,一个类只需要执行一个方法调用 run(),声明如下:
代码语言:javascript复制public void run()
你可以重写该方法,重要的是理解的 run() 可以调用其他方法,使用其他类,并声明变量,就像主线程一样。
在创建一个实现 Runnable 接口的类之后,你可以在类中实例化一个线程对象。
Thread 定义了几个构造方法,下面的这个是我们经常使用的:
代码语言:javascript复制Thread(Runnable threadOb,String threadName);
这里,threadOb 是一个实现 Runnable 接口的类的实例,并且 threadName 指定新线程的名字。
新线程创建之后,你调用它的 start() 方法它才会运行。
代码语言:javascript复制void start();
代码语言:javascript复制package com.joshua317;
public class Main {
public static void main(String[] args) {
for (int i = 1; i <= 2; i ) {
RunnableDemo R1 = new RunnableDemo( "Thread-" i);
R1.start();
}
}
}
class RunnableDemo implements Runnable {
private String threadName;
private Thread t;
RunnableDemo(String name){
threadName = name;
System.out.println("创建线程:" threadName );
}
@Override
public void run() {
System.out.println("运行线程:" threadName);
try {
for(int i = 3; i > 0; i--) {
System.out.println("Thread: " threadName ", " i);
// 让线程睡眠一会
Thread.sleep(50);
}
} catch (InterruptedException e) {
System.out.println("Thread " threadName " interrupted.");
}
System.out.println("Thread " threadName " exiting.");
}
public void start() {
System.out.println("开始线程:" threadName );
if (t == null) {
t = new Thread (this, threadName);
t.start ();
}
}
}