本文主要介绍关于线程如何实现的方式,主要介绍的是在jdk1.5之前的两种方式:分别是继承Thread类与实现Runnable接口。
继承Thread类:
第一种:
new Thread(){}.start();
这表示调用Thread子类对象的run方法,new Thread(){}表示一个Thread的匿名子类的实例对象,子类加上run方法后的代码如下:
new Thread(){
public void run(){
}
}.start();
第二种:
new Thread(newRunnable(){}).start();
这表示调用Thread对象接受的Runnable对象的run方法,new Runnable(){}表示一个Runnable的匿名子类的实例对象,runnable的子类加上run方法后的代码如下:
new Thread(newRunnable(){
public void run(){
}
}
).start();
具体代码测试实现:
创建两个线程,一个继承Thread类。一个实现Runnable。
package MultiThreed;
public class NumberThread extends Thread{
public NumberThread(String string) {
super(string);
}
@Override
public void run() {
for (int i = 1; i < 5000; i++) {
System.out.println(this.getName()+":"+i);
}
}
}
package MultiThreed;
public class NumberThread2 implements Runnable{
private String name;
public NumberThread2(String name) {
this.name=name;
}
@Override
public void run() {
for (int i = 1; i < 5000; i++) {
System.out.println(this.name+":"+i);
}
}
}
主方法:
package MultiThreed;
public class Main {
public static void main(String[] args) {
NumberThread t1=new NumberThread("T1");
NumberThread2 t2=new NumberThread2("T2");
t1.start();
new Thread(t2).start();//还是需要调用Thread的start方法启动
}
}

824

被折叠的 条评论
为什么被折叠?



