专栏首页祥的专栏[Java]Java实现线程操作的两种方法

[Java]Java实现线程操作的两种方法

原创文章,欢迎转载。转载请注明:转载自 祥的博客 原文链接:http://blog.csdn.net/humanking7/article/details/43537325


方法一:继承Thread类,复写run()方法


继承Thread类,复写run()方法

class FirstTread externs Thread{
    @overrid
    public void run(){
        for(int i = 0; i<100; i++){
            System.out.println("第一种方法 : " + i );
        }
    }
}

实例化FirstThread对象,调用FirstThread对象中的start()方法

class Test{
    public static void main(String[] args) {
        //生成线程类的对象
        FirstThread ft = new FirstThread();     
        //执行start()方法,启动线程
        ft.start();
    }
}

方法二:实现Runnable接口,实现run()方法


Runnable接口的实现类 RunnableImpl

class RunnableImpl implements Runnable{
    @overrid
    public void run(){
        for(int i = 0; i<100; i++){
            System.out.println("第二种方法 : " + i );
        }
    }
}

RunnableImpl的对象作为参数传给Thread对象,用start()方法启动线程。

class Test{
    public static void main(String[] args) {
        //生成一个Runnable接口实现类的对象
        RunnableImpl ri = new RunnableImpl();
        //生成一个Thread对象,并将Runnable接口的实现类作为参数
        //传递给Thread对象
        Thread t = new Thread(ri);
        //执行start()方法
        t.start();
    }
}

总结


尽量使用第二种方法,原因有以下几点:

  • Java是单继承,能少创建一个类就不要创建
  • 增加程序的健壮性,代码可以被多个线程共享,代码和数据独立。方法二是将线程和线程体分开,更有利于程序的模块化降低耦合度
  • 最重要一点是,适合多个相同的程序代码的线程去处理同一个资源。如果一个类继承Thread,则不适合资源共享。但是如果实现了Runable接口的话,则很容易的实现资源共享

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 笔记 33 | Android通信之Thread类实现多线程

    项勇
  • 多线程的实现方法

          从Thread类中实例化的对象即代表线程,启动一个线程就是建立一个Thread实例。因为完成线程真正功能的代码放在类的run()方法中,所以可以将线...

    sr
  • Java多线程系列(二)-----实现方式

    版权声明:欢迎转载,请标明出处,如有问题,欢迎指正!谢谢!微信:w1186355422 ht...

    IT云清
  • 创建线程到底有多少种方式?

    话不多说,金九银十,很多同学马上就要参加秋招了。而多线程肯定是面试必问的,开篇之前,问大家一个问题:创建线程到底有几种方式?

    一个优秀的废人
  • 简说Java线程的那几个启动方式

    并发是一件很美妙的事情,线程的调度与使用会让你除了业务代码外,有新的世界观,无论你是否参与但是这对于你未来的成长帮助很大。

    Java猫说
  • 看完本文,再也不怕问java线程创建的几种方式了

    使用继承Thread类的方法来创建线程类时候,多个线程之间是无法共享线程类的实例变量的。

    田维常
  • Java中实现多线程的3种方法介绍和比较

    黄小怪

扫码关注云+社区

领取腾讯云代金券