您的位置:首页 > 编程语言 > Java开发

JAVA中创建线程对象的两种方法:继承Thread和实现Runable

2012-09-03 16:36 1141 查看
1.通过继承Thread类创建线程

    从Thread派生出一个新类,在其中加入属性和方法,同时覆盖run()方法。当创建这样一个派生类的新对象后,使用start()方法,即可启动该线程。

public class testThread {
public static void main(String[] args) {
Thread t = new MyThread(); //new 出新的线程对象
t.start(); //此对象直接start
}
}
class MyThread extends Thread{
public void run(){
for(int i=0;i<100;i++){
System.out.println(" "+ i);
}
}


2.通过向Thread()构造方法传递Runnable对象来创建线程

 

其中Runnable对象是指实现了java.lang.Runnable接口的任何对象,Runnable接口只有一个方法:

 pulic void run();

这个run()方法实际上就是线程所要执行的代码。

要启动线程在中的代码,只需要执行Thread类的start()方法,则系统会在可能的情况下去执行run()方法中所规定的代码。

public class testThread2 {
public static void main(String[] args) {
MyTask mytask = new MyTask(100); //new 出线程对象mytask
Thread thread = new Thread(mytask); //由线程对象在new出thread线程对象
thread.start(); //最后new出的对象start
}
}
class MyTask implements Runnable{
private int n;
public MyTask(int n){
this.n = n;
}
public void run(){
for(int i=0; i<n; i++){
System.out.println(" "+ i)
}
}
}


 

两种方法的比较:

 1直接继承Thread类:这种方法的特点是: 编写简单,可以直接操纵线程;但缺点也是很明显的,因为若继承Thread类,就不能再从其他类来继承了。

 2使用Runnable接口:这种方法的特点是: 可以将Thread类与所要处理的任务的类分开,形成清晰地模型;还可以从其他类继承。

另外,若直接继承Thread类,在类中this即指当前线程;若使用Runnable接口,要在类中获得当前线程,必须使用Thread.currentThread()方法。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  thread java class string 任务
相关文章推荐