Java【多线程知识总结(5)】比较继承Thread类创建线程和实现Runnable接口创建线程这两种方式

时间:2021-05-14 17:31:26
//第一种:通过实现Runnable接口创建线程
class Thread01 implements Runnable
{
public void run()
{

}
}
//启动线程
Thread01 t=new Thread01();
new Thread(t).start();


//第二种:通过继承Thread类创建线程
class Thread01 extends Thread
{
public void run()
{

}
}
//启动线程
Thread t=new Thread01();
t.start();


/*
比较两种创建线程的方式:
通过实现Runnable接口创建线程:声明一个实现接口Runnable的类,该类实现接口的run方法,对这个类进行实例化.
启动线程:new Thread(这个类的对象).starat();

通过继承Thread类创建线程:生一个Thread类的子类,该类重写父类的run方法,对这个类进行实例化,然后通过这个类的对象去调用start方法.
启动线程:new Thread_er().start();
*/

//举例


//1.通过实现Runnable接口的方式创建线程
class ZaoShang implements Runnable
{
public void run()
{
System.out.println("早上好!");
}
}
class ZhongWu implements Runnable
{
public void run()
{
System.out.println("中午好!");
}
}

class WanShang
{
public static void main(String[]args)
{
ZaoShang z=new ZaoShang();
ZhongWu zh=new ZhongWu();
new Thread(z).start();
new Thread(zh).start();
System.out.println("晚上好!");//这句最先输出.
}
}


//2.通过继承Thread类,创建线程
/*
class ZaoShang extends Thread
{
public void run()
{
System.out.println("早上好!");
new ZhongWu().start();
}
}
class ZhongWu extends Thread
{
public void run()
{
System.out.println("中午好!");
}
}

class WanShang
{
public static void main(String[]args)
{
new ZaoShang().start();
System.out.println("晚上好!");
}
}
*/

Java【多线程知识总结(5)】比较继承Thread类创建线程和实现Runnable接口创建线程这两种方式