/*
创建线程的一种方式是:继承Thread类,并复写类中run方法
最后调用线程的start方法,
该方法启动线程并调用run方法(即和模板方法类似)
getName();获取线程的名称
static Thread currentThread()为获取当前线程对象
第二种方式是实现Runnable接口中的run方法
调用Thread(Runnable traget)构造函数实现
class ThreadDemo implements Runnable
{
public void run(){....}//将线程要运行的代码放在run中
}
实例时 ThreadDemo p =new ThreadDemo();
Thread t1 = new Thread(p);
两种方式的区别:
1.第一种方式继承了Thread类,但JAVA在类中只支持单继承,就不能继承其它类
继承Thread:线程代码存放在Thread子类run方法中
2.第二种方式实现了接口,但可以继续继承其它类;(避免了单继承局限性)
实现接口,代码存放在Runnable实现子类子的run方法中
下例:(第一种方式)
*/
class ThreadDemo extends Thread
{
ThreadDemo(String name)
{
super(name); //调用父类构造函数
}
public void run()
{
for(int x=0;x<50;x++)
{
System.out.println(this.getName()+"Hello Thread "+x);
}
}
}
class ThreadShow
{
public static void main(String []args)
{
ThreadDemo t = new ThreadDemo();
t.start();
//t.run(); 若调用这个,则没有创建线程
for (int i=0;i<50 ;i++ )
{
System.out.println("hello World "+i);
}
}
}