文章目录

  • 1.单线程举例
  • 2.多线程的创建与启动
  • 3.实例
  • 4.需要注意的地方
  • 5.参考资料

1.单线程举例

public class Test {public static void main(String[] args){method2("yyzhang");}public static void method1(String str){System.out.println("method1...");System.out.println(str);}public static void method2(String str){System.out.println("method2...");method1(str);System.out.println(str);}
}

看似调用了多次函数,其实是单线程调用

2.多线程的创建与启动

  • java语言的JVM允许程序运行多个线程,他通过java.lang.Thread类来实现
  • Thread类的特性
    • 每个线程都是通过某个特定的Thread对象的run()方法完成操作的,经常把run()方法的主体称为线程体
    • 通过该Thread对象的start()方法来调用这个线程
      通过查阅api可以得到,创建线程方法一是:

      1. 创建一个继承Thread的类
      2. 重写Thread的run方法,方法内实现子线程需要实现的功能
      3. 创建一个子类的对象
      4. 调用线程的start方法

3.实例

/** 创建一个子线程,完成1-100之间自然数的输出,同样的* 主线程执行同样的操作* 创建多线程的第一种方式,继承java.lang.Thread类*///1创建一个继承Thread的子类
class SubThread extends Thread{//2.重写Thread的run方法,方法内实现子线程要实现的功能public void run(){for(int i=1;i<=100;i++){System.out.println(Thread.currentThread().getName()+":"+i);}}
}
public class TestThread {public static void main(String[] args) {//3.创建一个子类的对象SubThread st=new SubThread();//4.调用线程的start方法,启动此线程,调用相应的run方法//5.一个线程只能start一次//6.直接调用run方法只有一个线程st.start();for(int i=1;i<=100;i++){System.out.println(Thread.currentThread().getName()+":"+i);}}}

运行结果:

我们可以看到打印的结果是两个线程是交替执行的。

4.需要注意的地方

  1. 一个线程只能start一次

    将代码局部改为如图所示的样子。试着运行,可以得到:

    试着在start方法中寻找答案,点击进去,发现
    有一个threadStatus来指示运行的状态,它从根本上禁止了将一个线程运行多次
  2. 直接运行线程的run方法会发生什么?
    试着将代码修改为

    运行发现

    只有一个Thread,那就是main。

5.参考资料

尚硅谷–继承方式创建多线程

java多线程(2)----继承的方式创建多线程相关推荐

  1. java thread 多线程_java用Thread方式创建多线程

    进程:一个正在执行的程序,每一个进程都有一个执行顺序,该 顺序是一个执行路径,或者叫一个控制单元. 线程:进程中一个独立的控制单元.线程控制着进程的执行. 一个进程中至少有一个线程. java VM中 ...

  2. Java继承Thread类创建多线程

    Java继承Thread类创建多线程 单线程示例 示例,Example01.java public class Example01{public static void main(String[] a ...

  3. 多线程初探:三种方式创建多线程详细示例

    多线程即在同一时间,可以做多件事情. 创建多线程有3种方式,分别是继承线程类,实现Runnable接口,匿名类 一:线程概念 首先要理解进程(Processor)和线程(Thread)的区别 进程:启 ...

  4. Lambda方式创建多线程

    Lambda方式创建多线程 一.Lambda表达式的标准格式 Lamdba创建线程,是对匿名内部类创建多线程的简化 由三部分组成: a.一些参数b.一个箭头c.一段代码 格式: (参数列表)-> ...

  5. 对Java多线程编程的初步了解,实现多线程的三种方式以及多线程并发安全的线程同步机制

    什么叫进程?什么叫线程? 进程相当于一个应用程序,线程就是进程中的一个应用场景或者说是一个执行单元,一个进程可以启动多个线程,每个线程执行不同的任务,一个线程不能单独存在,他必须是进程的一部分,当进程 ...

  6. 多线程之继承Thread类及多线程内存分析

    *创建多线程的一种方式:继承Thread类 * java.lang.Thread是描述多线程的类,要实现多线程程序,一种方式就是继承Thread类 * 1.创建一个类Mythread让其extends ...

  7. 继承Thread类的方式创建多线程

    package MoreThread;public class MoreThread implements Runnable{@Overridepublic void run() {for(int i ...

  8. spark java pom.xml_使用maven方式创建spark项目(配置pom.xml文件)

    创建maven项目后,在pom.xml文件中添加如下配置项: 1.8 1.8 2.10.5 1.6.2 2.6.4 UTF-8 org.apache.spark spark-core_2.11 ${s ...

  9. java创建多线程的四种方式

    java多线程的创建方式是面试经常会被问到的一个问题,因此在这里我对java创建多线程的四种方式做一个简单的归纳与总结,便于复习. 一.继承Thread类创建多线程 ① 创建一个继承于Thread类的 ...

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

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

最新文章

  1. 也论PageController/FrontController与MVC
  2. 关于list.extend(iterable)
  3. 开发者社区精选直播合集一览
  4. linux源码安装必备条件,玩转Linux必备的金钥匙之源码安装mysql
  5. 2+22+222+2222(直到n个2的精确计算)
  6. 两年的坚持,最后还是决定将ISoft开源
  7. Android 之 Window、WindowManager 与窗口管理
  8. matlab中LMI工具箱函数feasp的用法
  9. corn表达式的简单使用
  10. python函数round()取整保留小数问题
  11. linux学习笔记:如何更改文件属性?
  12. Node.js系列——(4)优势及场景
  13. IDC机房建设方案参考资料
  14. 人体姿态识别 tensorflow版本
  15. 计算机学硕编码,怎么区分学硕和专硕代码
  16. MSM8937平台bootloader调试之一
  17. 设计资源:一款精美APP原型
  18. 导出IE浏览器配置的注册表信息 IE设置的注册表相关信息以及修改方法
  19. 计算机机房新风机的作用,你知道机房为什么要装新风系统吗?
  20. 宇宙那么大,跟着链游“上天”看看?

热门文章

  1. Apache JMeter 5.1.1 发布,压力测试工具
  2. PWA登陆iOS了,但它还有这些缺陷
  3. 《maven实战》学习笔记2——maven安装(windows和eclipse插件)
  4. linux 平台安装ionic开发调试编译环境(Android)
  5. freemarker 自己常用方法
  6. android 来电自动接听和自动挂断
  7. 设置dedecms为动态页面,设置dedecms为静态页面,首页动态,列表动态和文章动态
  8. 如何成为优秀的技术人员
  9. 2022 基于SpringBoot的高校食堂点评系统 大众点评系统
  10. 计算机算法设计与分析第三章答案,《计算机算法设计与分析》第三章动态规划法.ppt...