- 步骤
- 1.创建一个实现Runnable接口的类
- 2.实现接口中的run()-->将此线程要执行的操作,声明在此方法体中
- 3.创建当前实现类的对象
- 4.将此对象作为参数传递到Thread类的构造器中,创建Thread类的实例
- 5.Thread类的实例调用start();
- 代码:
public class RunnableTest { public static void main(String[] args) { // TODO Auto-generated method stub //3.创建当前实现类的对象 RunTest r=new RunTest(); //4.将此对象作为参数传递到Thread类的构造器中,创建Thread类的实例 Thread t1=new Thread(r); Thread t2=new Thread(r); //5.Thread类的实例调用start(); t1.start(); t2.start(); new Thread(r).start(); } } //1.创建一个实现Runnable接口的类 class RunTest implements Runnable{ @Override //2.实现接口中的run()-->将此线程要执行的操作,声明在此方法体中 public void run() { // TODO Auto-generated method stub for(int i=1;i<=100;i++) { if(i%2==0) { System.out.println(i+"------"); } } } }
- 继承Thread和继承Runnable两种方式的对比
- 共同点:
- 1.启动线程,使用的都是Thread类中定义的start()
- 2.创建的线程对象,都是Thread类或其子类的实例。
- 不同点:一个是类的继承,一个是接口的实现。
- 建议使用实现Runnable接口的方式。
- Runnable方式的好处:1.实现的方式,避免的类的单继承的局限性2.更适合处理有共享数据的问题3.实现了代码和数据的分离
- 联系:public class Thread implements Runnable(代理模式)
- 共同点:
线程创建方式 2:实现 Runnable 接口
最新推荐文章于 2024-04-06 23:53:23 发布