java多线程实现方式主要有两种:继承Thread类、实现Runnable接口

1、继承Thread类实现多线程

继承Thread类的方法尽管被我列为一种多线程实现方式,但Thread本质上也是实现了Runnable接口的一个实例,它代表一个线程的实例,并且,启动线程的唯一方法就是通过Thread类的start()实例方法。start()方法是一个native方法,它将启动一个新线程,并执行run()方法。这种方式实现多线程很简单,通过自己的类直接extend Thread,并复写run()方法,就可以启动新线程并执行自己定义的run()方法。例如:

public class MaYi extendsThread {

String name;publicMaYi(String name){this.name =name;

}public voidrun(){while(true){try{

Thread.sleep(1000);//等待1秒

} catch(InterruptedException e) {

e.printStackTrace();

}

System.out.println(name+"蚂蚁正在下载......");

}

}

}

启动线程:

public static voidmain1(String[] args) {

MaYi m1= new MaYi("1号");

m1.start();

MaYi m2= new MaYi("2号");

m2.start();

2、实现Runnable接口方式实现多线程

如果自己的类已经继承另一个类,就无法直接extends Thread,此时,必须实现一个Runnable接口,如下:

public class MyThread extends OtherClass implementsRunnable {public voidrun() {

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

}

}

为了启动MyThread,需要首先实例化一个Thread,并传入自己的MyThread实例:

MyThread myThread = newMyThread();

Thread thread= newThread(myThread);

thread.start();

事实上,当传入一个Runnable target参数给Thread后,Thread的run()方法就会调用target.run(),参考JDK源代码:

public voidrun() {if (target != null) {

target.run();

}

}

java 多线程两种方式_JAVA多线程实现的两种方式相关推荐

  1. java多线程的实现方式_JAVA多线程实现的三种方式

    最近在做代码优化时学习和研究了下JAVA多线程的使用,看了菜鸟们的见解后做了下总结. 1.JAVA多线程实现方式 JAVA多线程实现方式主要有三种:继承Thread类.实现Runnable接口.使用E ...

  2. java多线程的实现方式_Java 多线程(一)——多线程的实现方式

    一.前言 Java 异常的处理方式与自定义异常 我们已经讲完了,从今天开始我们来学习多线程. 二.与多线程相关的概念 2.1.并发与并行并发:指两个或多个事件在同一个时间段内发生,具体如下图所示: 并 ...

  3. java的多线程实现方式_java 多线程实现方式

    本文主要是对java 多线程知识的总结,做个记录,温故知新. 多线程有三种实现方式,具体如下. 继承Thread类创建线程类 重写run方法,完成线程需要做的任务. 创建实例 调用start()启动线 ...

  4. java 线程的基本概念_Java多线程——多线程的基本概念和使用

    一.进程和线程的基础知识 1.进程和线程的概念 进程:运行中的应用程序称为进程,拥有系统资源(cpu.内存) 线程:进程中的一段代码,一个进程中可以有多段代码.本身不拥有资源(共享所在进程的资源) 在 ...

  5. java多线程调用一个函数_Java 多线程(一)

    1. 多线程使用方法 使用多线程,绝大部分情况都是通过如下两种方式实现的,即继承Thread类或者实现Runnable接口.以下对两种方式分别进行介绍并比较. 1.1 使用Thread类实现多线程 自 ...

  6. java 创建线程的三种方法_java 创建线程的几种方式

    说道线程,肯定会想到使用 java.lang.Thread.java这个类 那么创建线程也主要有2种方式 第一种方式: public class MyThread extends Thread { p ...

  7. java时间戳是什么类型_java 获取时间戳的三种方式

    java 获取时间戳的三种方式 CreationTime--2018年7月13日16点29分 Author:Marydon 1.实现方式 方式一:推荐使用 System.currentTimeMill ...

  8. java中的23种设计模式_Java开发中的23种设计模式详解

    所谓单例模式,简单来说,就是在整个应用中保证只有一个类的实例存在.就像是Java Web中的application,也就是提供了一个全局变量,用处相当广泛,比如保存全局数据,实现全局性的操作等. [J ...

  9. java遍历是什么意思_Java遍历集合的几种方法分析(实现原理、算法性能、适用场合)...

    概述 Java语言中,提供了一套数据集合框架,其中定义了一些诸如List.Set等抽象数据类型,每个抽象数据类型的各个具体实现,底层又采用了不同的实现方式,比如ArrayList和LinkedList ...

最新文章

  1. JAVA基础知识之Set集合
  2. 本地缓存需要高时效性怎么办_缓存在高并发场景下的常见问题
  3. 图像边缘检测技术与理论发展脉络梳理大放送
  4. spring配置详解-scope属性
  5. SAP WebClient UI drop down list(下拉列表)的一个故障和解决方法
  6. 云原生时代,谁是容器的最终归宿?
  7. java项目短信群发接口_JAVA实现第三方短信发送过程详解
  8. Android权限之sharedUserId和签名
  9. 使用 sequelize 在 node 环境下操作 Mysql
  10. android 获得资源图片,快速获取app(ios和安卓)资源图片
  11. java单元测试的编写及运行方法
  12. vb导出mysql字段名_VB获取数据库字段名
  13. 【实用工具】如何录制电脑屏幕gif动图?
  14. mupdf添加图片水印_在博客园里给图片加水印(canvas + drag)
  15. 【树莓派】树莓派3B+搭建Ubuntu
  16. java万能引用_Java的四种引用方式
  17. JAVA-实现接入企业微信发送消息(最详细代码讲解!)
  18. silvaco 仿真BJT
  19. html + css 面试
  20. Parabolic SAR(抛物线转向指标)

热门文章

  1. java中字符串后加Box_字符串未显示在JavaFX中ComboBox的Tableview上
  2. java绘制流程图_如何才能更好地绘制计算机毕业设计中各种图表
  3. php判断有没有登录,请问thinkphp 怎么在每个方法里面判断是否登录?
  4. Dev-C++ 常用快捷键大全
  5. mysql连接不上远程数据库_Mysql 连接不上远程数据库,求助
  6. python include的功能_在Python的Config中增加Include功能
  7. mvc 扫描二维码跳转内部指定页面_开源神器:一个二维码,让文件传输不设限!...
  8. C语言中数组越界访问造成死循环现象
  9. python3 week4
  10. 对比 C++ 和 Python,谈谈指针与引用