您的位置:首页 > 其它

线程创建的两种方法

2014-12-07 20:46 148 查看
在一个线程中创建一个新线程可以有两种方法,一种是继承Thread类,一种是实现Runnable接口。具体实现如下:

第一种方法:

创建一个新类,并且继承自Thread类,在这个新类中重写run方法,用以覆盖Thread类中原有的run方法。run方法中所写入的执行语句就是这个类所创建的新的线程所要执行的任务。

class DemoThread extends Thread

{

private String name; // 这个是线程的名称

DemoThread(String name)

{

this.name=name;

}

public void run()

{

//在这里写入线程所要执行的任务的代码块

}

}

public class DemoMain

{

public static void main(String [] args)

{

DemoThread d1=new DemoThread("小明");//创建了线程

DemoThread d2=new DemoThread("Jacky");//创建了线程

d1.start();//开启新创建的线程,并且调用run 方法

d2.start();//开启新创建的线程,并且调用run 方法

}

}

第二种方法:

上面的方法创建新线程时有一些局限性,那就是当DemoThread类需要继承一个其他的父类时,它就不能直接继承Thread类了;还有一点就是这种继承的方法,会把一个类完全变成Thread类下面的的一个体系,它会把一些不需要的东西也都继承下来,有时候这并不是很科学。我们下面说到的这种方法就很好地解决了这些局限性,它创建一个实现了Runnable接口的类,重写run方法

class DemoThread implements Runnable

{

public void run()

{

//写入要实现的任务代码

}

}

class DemoMain()

{

DemoThread d=new DemoThread();

Thread t1=new Thread(d); //通过Thread类创建线程对象,并将Runnable接口的子类对象作为Thread类的构造函数的参数进行传
// 递,这是因为线程所要执行的任务都封装在了Runnable接口的子类对象的run方法中,线程对象创建 // 时就必须明确要运行的任务。

Thread t2=new Thread(d);

t1.start(); //调用start方法开启线程。

t2.start();



}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: