Java中创建线程有两种方式,一种是继承Thread类,一种是实现Runnable接口.下面就这两种方式分别演示一下:
1.通过继承Thread类创建线程类。
package com.thread;
public class FirstThead {
public static void main(String[] args) {
new MyThread().start();
new MyThread().start();
}
}
class MyThread extends Thread{
//重写run方法
@Override
public void run() {
for (int i=0;i<100;i++){
System.out.println(getName()+" :"+i);
}
}
}
输出结果部分如下:
Thread-0 :0
Thread-0 :1
Thread-0 :2
Thread-1 :0
Thread-1 :1
Thread-1 :2
Thread-1 :3
Thread-1 :4
Thread-1 :5
Thread-1 :6
Thread-1 :7
Thread-1 :8
Thread-1 :9
Thread-1 :10
Thread-1 :11
Thread-1 :12
由上面结果,我们可以间接地看出,两条线程的循环变量并不连续,表明它们没有共享数据!
2、通过实现Runnable接口来创建线程类.
package com.thread;
public class SecondThread {
public static void main(String[] args) {
Thread t1=new Thread(new MyThead(),"first");
t1.start();
Thread t2=new Thread(new MyThead(),"second");
t2.start();
}
}
class MyThead implements Runnable{
@Override
public void run() {
for (int i=0;i<100;i++){
System.out.println(Thread.currentThread().getName()+" "+i);
}
}
}
部门输出结果如下:
second 84
second 85
second 86
first 35
first 36
first 37
second 87
second 88
second 89
second 90
second 91
second 92
second 93
first 38
second 94
first 39
second 95
至此两种创建线程的方式已经完成,顺便唠叨一下,当继承Thread时,我们可以直接调用getName()方法获得当前线程的名字;实现了Runnable接口时,可以使用Thread.currentThread().getName()方法获得当前线程的名字!