实现Runnable接口相对于继承Thread类的优点

来源:互联网 发布:一号店 知乎 编辑:程序博客网 时间:2024/06/09 15:36

  1. 适合多个相同程序代码的线程去处理同一个资源
  2. 可以避免由于Java的单继承性带来的局限性
  3. 增强了程序的健壮性,代码能够被多个线程共享,代码与数据是独立的。

      线程对象在实例化的时候只能实例化一个对象

/**定义一个线程

*/   

 class  MyThread implements Runable{

      private int ticket=5;//票的数量为5

      public void run(){//覆写run方法

      for(int i=0;i<100;i++){//定义一个超过票数的循环

           if(ticket>0){

                         System.out.println("卖票了,ticket="+ticket);//还有显示有票的数量

                   }

          }

    }

}

/**验证上面线程中ticket被共享

*/

class   MyThreadTest{

      public static void main(String []args){

                MyThread a=new MyThread();//实例化线程对象

                 //启动两个线程对象去,发现票数据被共享

                new Thread(a).start();//启动第一个线程对象

                new Thread(a).start();//启动第二个线程对象

               /*如果实例化两个对象,比如实例化a再实例化一个b你会发现没有,两个不同的线程没有共享ticket

                 但是如果MyThread是继承Thread类而不是实现接口Runnable,上面的代码将报错。*/

          }

}

1 0
原创粉丝点击