1,继承Thread类,然后重写run方法
2,实现Runnable接口,然后重写run方法
两种方法的区别于联系(平时我们尽量使用实现接口的方法来实现线程)
启动方式不同
Thread类:只需要new一个实例就能够调用start方法 例如:
Cat cat=new Cat();
cat.start();
Runnable接口:首先new一个Runnable实例 例如:
Cat cat=new Cat();
Thread t=new Thread(cat)
t.start();
注意
不论是通过继承Thread,还是通过实现Runnable接口,创建线程
他们的对象 只能start一次,否则会出现异常。
TicketWindow tw1=new TicketWindow();
Thread t1=new Thread(tw1);
t1.start();
t1.start();
以上的方法是不行的
但是一下方法是可行的(因为这里创建了三个进程)
TicketWindow tw1=new TicketWindow();
Thread t1=new Thread(tw1);
Thread t2=new Thread(tw1);
Thread t3=new Thread(tw1);
t1.start();
t2.start();
t3.start();