Java语言的JVM允许程序运行多个线程,它通过java.lang.Thread类来体现。

Thread类的特性
每个线程都是通过某个特定Thread对象的run()方法来完成操作的,经常把run()方法的主体称为线程体,通过该Thread对象的start()方法来启动这个线程,而非直接调用run()。


JDK1.5之前创建新执行线程有两种方法:
①继承Thread类的方式 (点击查看Thread类相关常用的方法)
②实现Runnable接口的方式


方式一:继承Thread类

①定义子类继承Thread类。
②子类中重写Thread类中的run方法。
③创建Thread子类对象,即创建了线程对象。
④调用线程对象start方法:启动线程,调用run方法。

继承Thread的子类MyThread

public class MyThread extends Thread{@Overridepublic void run() { //该方法体即为该线程要执行的程序for (int i = 0;i < 50;i++){if (i % 2 == 0) System.out.println(i);}}
}

创建线程对象并执行

public class TestThread {public static void main(String[] args) {//创建线程MyThread thread = new MyThread();//启动该线程,并执行run()方法thread.start();//以下是不同于thread的线程for (int i = 0; i < 50; i++) {if (i % 2 == 0) {System.out.println(i + "#####");}}}
}

结果(仅截取部分)


该结果随着计算机的不同会有不同的情况,不定。但要表达的意思就是多线程执行的情况下不同线程是并行的。


注意点:
①如果自己手动调用run()方法,那么就只是普通方法,没有启动多线程模式。
②run()方法由JVM调用,什么时候调用,执行的过程控制都有操作系统的CPU调度决定。
③启动多线程,必须通过调用start()方法。
④一个线程对象只能调用一次start()方法启动,如果重复调用了,则将抛出异常“IllegalThreadStateException”。


方式二:实现Runnable接口

①定义子类,实现Runnable接口。
②子类中重写Runnable接口中的run方法。
③通过Thread类含参构造器创建线程对象。
④将Runnable接口的子类对象作为实际参数传递给Thread类的构造器中。
⑤调用Thread类的start方法:开启线程,调用Runnable子类接口的run方法。

实现Runnable接口的类

public class MThread implements Runnable{@Overridepublic void run() {for (int i = 0; i < 100; i++) {if (i % 2 == 0){System.out.println(i);}}}
}

创建对象并执行

public class TestThread {public static void main(String[] args) {MThread thread = new MThread();Thread curThread = new Thread(thread);curThread.start();}
}

继承方式和实现方式的联系与区别

开发中:优先选择:实现Runnable 接口的方式
原因:①实现的方式没有类的单继承性的局限性。②实现的方式更适合来处理多个线程有共享数据的情况。

联系: public class Thread implements Runnable
相同点:两种方式都需要重写run(),将线程要执行的逻辑写在在run()中。

Java多线程(2)--Thread类继承和Runnable接口创建线程相关推荐

  1. java基础 通过继承Thread类和实现Runnable接口创建线程

    java 创建线程 Java中,线程也是一种对象,但不是任何对象都可以成为线程. 只有实现了Runnable接口或继承了Thread类的对象才能成为线程. 继承Thread类 //格式: class ...

  2. JavaSE基础二十:Java 多线程(线程基础知识、Java 多线程、Java 实现多线程(继承 Thread 类、实现 Runnable 接口、实现 Callable 接口))

    本章目录 1.基础知识准备 2.Java 多线程概述 3.Java 实现多线程 3.1.继承 Thread 类 如何开启新线程 Thread 类常用方法 多线程中的同步 Thread 类同步方法 多线 ...

  3. Java中继承thread类与实现Runnable接口的区别

    Java中线程的创建有两种方式: 1.  通过继承Thread类,重写Thread的run()方法,将线程运行的逻辑放在其中 2.  通过实现Runnable接口,实例化Thread类 在实际应用中, ...

  4. 多线程中继承Thread 类和实现Runnable 接口的区别

    网上看了很多多线程里继承Thread 类和实现Runnable 接口的区别,大同小异,说下我的观点吧 区别一 创建线程的方式不同: 实现Runnable接口是代理模式,交给Thread()类去star ...

  5. 使用Runnable接口创建线程,很简单

    大家好,今天分享.使用Runnable接口创建线程 首先Java创建线程可以通过三种方法: 即: 1.继承Thread类创建线程类(重点) 2.通过Runnable接口创建线程类(重点) 3.通过Ca ...

  6. java多线程(一)-Thread类和Runnable接口

    public class Thread extends Object implements Runnable Thread通过实现Runnable实现多态关系. Java中实现多线程,最基本2种方式: ...

  7. 创建线程的两种方式:继承Thread类和实现Runnable接口

    第一种方式:继承Thread类 步骤:1.定义类继承Thread 2.覆写Threa类的run方法. 自定义代码放在run方法中,让线程运行 3.调用线程的star方法, 该线程有两个作用:启动线程, ...

  8. 线程的应用-实现Runnable接口创建线程

    如果自己的类已经extends另一个类,就无法直接extends Thread,此时,可以实现一个Runnable接口 public class MyThread extends OtherClass ...

  9. Java并发之Thread类的使用

    一.线程的几种状态 线程从创建到最终的消亡,要经历若干个状态.一般来说,线程包括以下这几个状态:创建(new).就绪(runnable).运行(running).阻塞(blocked).time wa ...

最新文章

  1. Office2010启动慢的解决方法
  2. No architectures to compile for (ONLY_ACTIVE_ARCH=YES, active arch=x86_64, VALID_ARCHS=i386).
  3. jquery name选择器_Jquery--1
  4. 基于R语言的贝叶斯网络模型、现代贝叶斯统计学方法
  5. GPU算力时代的新场景
  6. minist数据集图片查看
  7. 新版itunes不显示图书_告别 iTunes!苹果新版mac操作系统正式上线,12大升级亮点解读...
  8. 梯形法则 matlab代码,matlab第二章常微分方程的数值解法
  9. win10计算机管理员的权限才能删除,Win10文件夹删除不了需要管理员权限怎么办?Win10文件夹删除不了需要管理员权限的解决方法...
  10. Java swing的主题风格设置
  11. vscode连接服务器不用每次都输入密码
  12. 如何让使用小博通蓝牙BK3432的鲁哇客智能挪车号码牌,一节钮扣电池工作一年
  13. 企业建行手机银行怎么对公转账限额
  14. html表格里面怎么合并单元格的快捷键,excel合并单元格快捷键是什么
  15. 酒越陈越醇,OPPO Reno越更越香
  16. 净重新分类指数NRI的计算
  17. SUMO(五)—— TraCI练习
  18. matlab合并两个矩阵。
  19. 过去分词表完成或者被动完成
  20. 2022北京智源大会中关村昇腾人工智能产业分论坛:汇聚智慧星火 构建AI新生态...

热门文章

  1. 如何在 MacOS 环境下搭建 SVN 服务端环境
  2. mysql在计算机管理中的路径怎么修改_称重软件中的数据修改怎么知晓?
  3. Python中的符号
  4. ftp主要完成与远程计算机的连接,2015计算机三级《网络技术》复习重点:远程登录服务和FTP服务...
  5. 选择排序 自带时间复杂度分析
  6. python ks值计算_利用Python计算KS的实例详解
  7. c语言怎么输入3个数输出最大值
  8. 计算机组成原理唐朔飞课后答案第六章,计算机组成原理第六章部分课后题答案(唐朔飞版)...
  9. 计算机主机箱外部介绍图,电脑的主机结构是怎样的 电脑主机结构图【图文】...
  10. yolov4论文_Alexey 大神接棒,YOLOv4 重磅来袭!快来一睹论文真容吧!| 原力计划...