您现在的位置是:首页 > 正文

【JAVA】一个方法中多个线程new Thread(....).run()会发生啥呢

2024-01-30 21:58:27阅读 0

一个方法中多个线程new Thread(…).run()会发生啥呢。

概念

  • 调用start()方法,程序会启动一个线程,并使这个线程处于就绪状态,当分配到时间片之后便可以执行。
  • 调用run()方法,程序会将new Thread(…)的代码视为普通代码,也就是你在一个main方法里面写两个线程任务,然后调用run()方法,那么它们就是顺序执行的。

代码

调用start()方法
public static void main(String[] args) {
        new Thread(() -> {
            try {
                Thread.sleep(600);
            } catch (InterruptedException e) {
                e.printStackTrace();
            }
            System.out.println("A");
        }).start();

        new Thread(() -> {
            try {
                Thread.sleep(500);
            } catch (InterruptedException e) {
                e.printStackTrace();
            }
            System.out.println("B");
        }).start();
    }

A线程sleep的时间比B长,所以输出结果是 B A。

调用run()方法
public static void main(String[] args) {
        new Thread(() -> {
            try {
                Thread.sleep(1600);
            } catch (InterruptedException e) {
                e.printStackTrace();
            }
            System.out.println("A");
        }).run();

        new Thread(() -> {
            try {
                Thread.sleep(500);
            } catch (InterruptedException e) {
                e.printStackTrace();
            }
            System.out.println("B");
        }).run();
    }

根据上面说的,直接调用run方法,效果其实就是普通代码块,并没有以多线程的方式执行,所以输出 A B。

网站文章

  • Jvm-Sandbox-Repeater的部署

    1.什么是jvm-sandbox-repeater? jvm-sandbox-repeater 是 JVM-Sandbox 生态体系下的重要模块,它具备了JVM-Sandbox 的所有特点,插件式设计...

    2024-01-30 21:58:20
  • openstack 安装并验证 Nova( 计算节点 + 控制节点)

    安装数据库,登录数据库创建 nova,nova_api,nova_cell0 数据库。将 nova 加入到 service 项目以及 admin 角色。创建 nova API 服务端点。创建用户和 API 服务端点。

    2024-01-30 21:57:50
  • open JDK 和 JDK区别

    使用过LINUX的人都应该知道,在大多数LINUX发行版本里,内置或者通过软件源安装JDK的话,都是安装的openjdk,那么到底什么是openjdk,它与sun jdk有什么关系和区别呢?历史上的原...

    2024-01-30 21:57:43
  • 平台设备与平台驱动注册过程platform_driver_register与platform_device_register

    1、platform_device_regisger2、platform_driver_regisgerplatform_driver_register  driver_register    bus...

    2024-01-30 21:57:36
  • 2020-12-28 pip出现Fatal error in launcher错误

    pip出现Fatal error in launcher错误原因:移动了python的安装路径解决方式:1. 新增一个叫做pip-script.py的文件在Python目录下的Scripts里面2. ...

    2024-01-30 21:57:06
  • python---字典元素的遍历

    注意通过这边遍历获得的只是键key,而不是键值对scores={'zs':59,'ls':69,'ww':79}for key in scores: print(key,scores[key])zs 59ls 69ww 79

    2024-01-30 21:57:01
  • 图片上传(VUE ,element)

    一、确定图片上传接口 const UPLOADURL='http://localhost:7001/admin/upload'; 根据要求写,这种只是展示,不规范,正常情况下只出现一次端口号,其余均是拼接。 二、页面引入

    2024-01-30 21:56:55
  • Netty之DefaultChannelPipeline源码分析

    Netty之DefaultChannelPipeline源码分析

    DefaultChannelPipeline类在初始化时,会创建两个ChannelHandlerContext实例,一个为head,一个为tail。Head为头部,Tail为尾部。其实给Channel...

    2024-01-30 21:56:21
  • hmail 邮箱服务器 从安装到使用

    hmail 邮箱服务器 从安装到使用

    hmail 邮箱服务器 从安装到使用1.下载hmail 下载地址:https://www.hmailserver.com/download2.安装安装期间可能要安装.net环境,选择安装就好设置管理员...

    2024-01-30 21:56:15
  • Codeforces Round 875 (Div. 2)(A~D)

    qwq

    2024-01-30 21:56:08