一、创建线程的第一种方法:
(1)继承thread类。
(2)覆盖其run方法。
(3)调用start方法作用:1,启动线程2,执行线程。
2,代码
class xian extends Thread
{
public void run()
{
for(int i=0;i<500;i++)
{
System.out.println("nihao");
}
}
}
二、第二种方法:通过接口implement实现runnable方法。
(1)定义类实现runnable接口类似于runtimeexception。
(2)覆盖runnable接口中的run方法。
将线程将要运行的代码存放在该run方法中。
(3)通过thread创建线程对象。
(4)将runnable接口中的子类对象作为实际参数传递thread类的构造函数。new Thread (c);
因为自定义的run方法所属对象是runnable接口的子类对象,所以要是线程去执行指定对象的run方法。就必须明确该run方法所属对象。
(5)通过调用thread的start方法开启线程。
三、实现与继承的区别?
1,实现方式好不避免了单继承的局限性。在定义线程是一般使用实现方式。
2,两者线程代码存放位置不同。
实现方式:一种线程代码存放在接口的子类中
继承线程代码存放在thread类中。 |
|