您的位置:首页 > 其它

创建线程的两种方式

2013-05-24 10:43 281 查看
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()方法获得当前线程的名字!
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: