方式一:继承Thread类
1、创建一个Thread的子类
2、重写run方法
3、实例化Thread的子类对象
4、调用该对象的start方法
简化:
//创建Thread类的匿名子类的方式<br> new MyThread(){<br> @Override<br> public void run() {<br> for (int i=0;i<20;i++) {<br> System.out.println(Thread.currentThread().getName()+"我的匿名线程");<br> }<br> }<br> }.start();
多个子线程就各自继承Thread类,重写各自的run方法
方式二:实现Runnable接口
1、创建一个类实现Runnable接口<br>
2、实现接口的run方法
3、实例化类为对象
4、创建Thread对象,将该对象作为Thread构造器的参数
5、Thread调用start方法
一和二区别:
1、由于Java只支持单继承,所以实现Runnable接口更实用
2、Runnable更有利于保存共享数据,因为数据放在构造器参数里面