您的位置:首页 > 其它

多线程01_张孝祥-传统线程的3种创建

2014-12-10 23:20 162 查看
现在简单介绍下传统线程的3种创建方式

       注意第03种的输出

(1)继承thread类

(2)实现Runnable接口

(3)自己看吧 输出是什么 想一下为什么

直接上代码了

package org.yla;

import java.util.concurrent.TimeUnit;
/**
* 传统线程的关键方法
* @author huo_chai_gun
* 2014年12月10日下午11:19:55
*/
public class TraditionalThreadTest {

public static void main(String[] args) {

Thread t = new Thread(){
@Override
public void run() {
while (true) {
try {
TimeUnit.SECONDS.sleep(1);
} catch (InterruptedException e) {
e.printStackTrace();
}
System.out.println("0: 	"+Thread.currentThread().getName());
}
};
};
t.start();

Thread t1 = new Thread(new Runnable() {

@Override
public void run() {
while (true) {
try {
TimeUnit.SECONDS.sleep(1);
} catch (InterruptedException e) {
e.printStackTrace();
}
System.out.println("1: 	"+Thread.currentThread().getName());
}
}
});

t1.start();

Thread t2 =new Thread(new Runnable() {

@Override
public void run() {
while (true) {
try {
TimeUnit.SECONDS.sleep(1);
} catch (InterruptedException e) {
e.printStackTrace();
}
System.out.println("runnable: 	"+Thread.currentThread().getName());
}
}
}){
@Override
public void run() {
while (true) {
try {
TimeUnit.SECONDS.sleep(1);
} catch (InterruptedException e) {
e.printStackTrace();
}
System.out.println("thread: 	"+Thread.currentThread().getName());
}
}
};

t2.start();
}
}


输出:

0: 	Thread-0
1: 	Thread-1
thread: 	Thread-2
1: 	Thread-1
0: 	Thread-0
thread: 	Thread-2
thread: 	Thread-2
0: 	Thread-0
1: 	Thread-1
1: 	Thread-1
thread: 	Thread-2
0: 	Thread-0
1: 	Thread-1
0: 	Thread-0
thread: 	Thread-2
1: 	Thread-1
0: 	Thread-0
thread: 	Thread-2
thread: 	Thread-2
0: 	Thread-0
1: 	Thread-1
thread: 	Thread-2
1: 	Thread-1
0: 	Thread-0

原因解释:

第3种的输出时Thread-2是因为:public class Thread implements Runnable

子类有该方法 去子类找 没有才去父类找
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  多线程 线程