创建Thread对象的两种常见的方法分析

来源:互联网 发布:手机攻城掠地挂机软件 编辑:程序博客网 时间:2024/05/17 00:19

一、常见的两种方法

1.定义一个线程类,它继承类Thread并重写其中的run方法

  • 定义一个类继承Thread类
public class MyThread1 extends Thread{      public void run()      {          方法体1;        }      }  
  • 调用自定义Thread对象
public static void main(String [] args){        MyThread m1=new MyThread1("thread1");        MyThread m2=new MyThread1("thread2");        MyThread m3=new MyThread1("thread3");        m1.start();        m2.start();        m3.start();    }

2.通过实现Runnable接口来创建多线程

  • 定义一个类实现Runnable接口
public class MyThread2 implements Runnable  {      public void run()  {        方法体2;    }  
  • 调用自定义Thread对象
public static void main(String [] args){        MyThread m1=new MyThread1("thread1");        MyThread m2=new MyThread1("thread2");        MyThread m3=new MyThread1("thread3");        m1.start();        m2.start();        m3.start();    }
注:其中方法体1,2中均为线程要实现的操作代码

二、两种方法的比较

  • 第一种方式,继承Thread类,类仅支持单继承,也就是说,当定义一个新的类的时候,它只能扩展一个外部类.这样,如果创建自定义线程类的时候是通过扩展 Thread类的方法来实现的,那么这个自定义类就不能再去扩展其他的类,也就无法实现更加复杂的功能。同时线程任务和线程对象绑定在一起,耦合性(紧密联系程度)高。不便于维护。

  • 第二种方式,实现Runnable接口,线程任 务在实现Runnable接口的类中,线程对象是Thread类对象,线程任务和线程对象相分离,耦合性底,便于维护,可拓展性高。

0 0
原创粉丝点击