简单模拟Java中创建多线程的两种方法

 

【文章标题】简单模拟Java中创建多线程的两种方法
【文章作者】曾健生

【作者邮箱】zengjiansheng1@126.com

【作者QQ190678908

【作者博客】http://blog.csdn.net/newjueqi

【编程环境】JDK 1.6.0_01

【作者声明】欢迎转载文章,但转载请保留文章的完整性以及注明文章的出处。

 

*******************************************************************************

java中,常见的创建多线程的方法有两种:

1.  继承Thread类后覆盖其中的public void run()方法。

2.  创建一个线程类Thread的实例,在构造函数中把实现Runnable接口后的实例对象当成参数传递进去。

 

从这两种方法可看出,这两种实现都和Thread类有联系,那应该怎么设计Thread类的体系才能实现这两种创建方法呢?

下面的代码利用接口和继承简单实现了上述了两种创建方法,从中可以领略一下面向对象的魅力^-^(真正的Thread类实现不会这么简单,这里的代码只是简单的实现它的设计)

 

/*

演示了多线程两种实现方法的实现机制

*/

 

//自定义的Runnable接口

interface MyRunnable

{

       public void run();

}

 

//自定义的Thread

class MyThread

{

       private MyRunnable mr;

       public MyThread(){}

       public MyThread( MyRunnable mr )

       {

              this.mr=mr;

       }

      

       //这里就是关键

       //1.如果用继承MyThread类的方法实现,那么子类调用的是被覆盖的后的run()方法

       //2.如果用实现Runnable接口的run()方法实现,那么调用的是实现接口的run方法(mr.run())

       public void run()

       {

              mr.run();

       }

      

       public void start()

       {

              this.run();

       }

      

}

 

/*

//通过继承的方法实现多线程

class Test extends MyThread

{

       public void run()

       {

              System.out.println( " extends run " );

       }

}

*/

 

//通过实现接口的方法实现多线程

class Test implements MyRunnable

{

       public void run()

       {

              System.out.println( " interface run " );

       }

}

 

 

class Demo

{

       public static void main( String args[])

       {

              //通过继承的方法实现多线程

       /*    Test t=new Test();

              t.start();

       */

                    

              //通过实现接口的方法实现多线程

              Test t=new Test();

              MyThread mt=new MyThread( t );

              mt.start();

      

       }

}

 

 

 

用继承的方法运行结果如图1

                                   1

 

用实现接口的方法运行结果如图2

 

                     2

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

newjueqi

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值