zoukankan      html  css  js  c++  java
  • Java多线程:什么时候使用哪种实现方式

      广州疯狂软件学院拥有三大课程体系包括:java课程,android课程,ios课程,更多java知识,android知识,ios知识,疯狂软件官网持续更新中。

      众所周知,JAVA里实现多线程有两种方式。

      一是继承Thread,覆盖run()方法:

      Java代码

      public class ThreadTest {

      public static void main(String[] args) {

      new MyThread().start();

      }

      }

      class MyThread extends Thread {

      @Override

      public void run() {

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

      super.run();

      }

      }

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

      Java代码

      public class ThreadTest {

      public static void main(String[] args) {

      new Thread(new MyRunnable()).start();

      }

      }

      class MyRunnable implements Runnable {

      @Override

      public void run() {

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

      }

      }

      这两种都是常用方法,那么问题来了,我们什么时候用哪种方式?sun公司当初为什么会设计两种实现方式? 很明显,我们在使用继承Thread方式时,有一个很大的缺点,就是我们继承了Thread后就不能继承其他类了。但是如果我们实现Runnable的话,恰好可以解决这个问题。

      实际上,我们的Thread类里面有这么一段代码:

      Java代码

      /* What will be run. */

      private Runnable target;

      public void run() {

      if (target != null) {

      target.run();

      }

      }

      这是Thread类里面的run()方法,如果target(即Runnable对象)非空的话,它会直接调用Runnable的run()方法。

      而Thread()类的run()方法是实现Runnable接口的:

      publicclass Thread implements Runnable {

      所以无论是哪种实现方式的run()其实都是一样的,但是Runnable方式有很明显的优势,就是它可以继承别的类而非局限于Thread类,Runnable方式说白了就是弥补这个缺陷而设计出来的。所以具体使用哪种方法就根据你实际情况了。

      疯狂Java培训机构拥有最好的Java培训途径,这是疯狂Java老师们经过多年经验总结出来的。Java技术简单易学,虽然Java技术涉及的内容十分广泛,只要有资深教师传授技术知识,就能在短期内实现Java高级工程师的梦想。如果初学者能够参加疯狂Java培训,有好的老师,好的培训途径,好的教材,让你成为最好的编程高手。疯狂Java培训,零基础教学,名师教学让你学得快学得牢,还能灵活运用。学软件开发,首选疯狂Java培训机构。

  • 相关阅读:
    从零开始通过webhooks实现前端自动化
    使用rem配置PC端自适应大屏
    Nuxt内导航栏的两种实现方式
    VueX中直接修改数据报错,修改一维数组,二维数组,报错的原因
    在mpvue或者Vue中使用VUEX
    小程序框架MpVue踩坑日记(二)
    小程序mpvue中动态切换echarts图表
    小程序踩坑之不同屏幕下动态改变translate值
    Koa2+MySQL+VUE+ElementIUI搭建简单的后台管理小系统
    小程序框架MpVue踩坑日记(一)
  • 原文地址:https://www.cnblogs.com/gojava/p/3432941.html
Copyright © 2011-2022 走看看