Java多线程-API

常见API一览

在这里插入图片描述

Thread t1 = new Thread(() -> {
    System.out.println("我是线程t1");
    System.out.println("Hello, World!");
});
t1.start();
// 获取线程名称 getName()
// 线程名称默认是Thread-0, Thread-1, ...
System.out.println(t1.getName());

// 通过构造方法设置线程名称 Thread(Runnable target, String name)
// 也可以通过setName()方法设置线程名称
Thread t2 = new Thread(() -> {
    System.out.println("我是线程t2");
    System.out.println("Hello, World!");
}, "t2");
t2.start();
System.out.println(t2.getName());

// 获取当前线程名称
// Thread.currentThread()获取当前线程对象
// 主线程不是人为创建,一般都是使用这种方法进行创建的
System.out.println("我是主线程:"+Thread.currentThread().getName());

join方法决定执行顺序

  • 线程一旦开启,不同先线程之间的执行顺序具有随机性
  • join方法能够决定线程执行的先后顺序

即使t1执行了很长时间,t2也必须在t1执行完毕之后才能执行

Thread t1 =  new Thread() {
    @Override
    public void run() {
        try {
            sleep(10000);
        } catch (InterruptedException e) {
            throw new RuntimeException(e);
        }
        System.out.println("我是线程t1");
    }
};
t1.start();
t1.join();

Thread t2 = new Thread() {
    @Override
    public void run() {
        System.out.println("我是线程t2");
    }
};
t2.start();
t2.join();

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/561042.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

AI 语音机器人系统怎么搭建

搭建AI语音机器人系统通常包括以下几个关键步骤: 确定需求和技术选型:首先要明确AI语音机器人需要实现的功能,选择合适的技术框架和工具,如自然语言处理工具、语音识别工具等。 搜集和准备数据:收集和整理与业务相关…

12.事件参数

事件参数 事件参数可以获取event对象和通过事件传递数据 获取event对象 <template><button click"addCount">Add</button><p>Count is: {{ count }}</p> </template> <script> export default {data() {return {count:0…

Three.js--》探秘虚拟现实VR展厅的视觉盛宴

今天简单实现一个three.js的小Demo&#xff0c;加强自己对three知识的掌握与学习&#xff0c;只有在项目中才能灵活将所学知识运用起来&#xff0c;话不多说直接开始。 目录 项目搭建 初始化three代码 camera-controls控制器使用 添加画框 画框处理事件 添加机器人模型 …

大数据学习的第三天

文章目录 学习大数据命令的方式查看文件拷贝文件的方式添加数据的方式 出现了问题移动文件 hadoop工作流程和工作机制的方式namenodedatanodesecondarynamenode(主节点) 学习大数据命令的方式 查看文件 hadoop fs -cat /test/2.txt下载文件 hadoop fs -get -f /test/2.txt-f …

机器学习运用-信用卡交易诈骗预测

简介 本项目应用XGBoost算法对数据进行分析并建模预测信用卡交易是否具有欺骗性&#xff0c;属于机器学习相关的二分类任务。 XGboost XGBoost是一个优化的分布式梯度提升库&#xff0c;旨在实现高效、灵活和便携。XGBoost 不仅提供了一个强大的机器学习算法&#xff0c;也提…

笔试强训未触及题目(个人向)

NC398 腐烂的苹果 1.题目 2.解析 这是一个广度优先搜索问题&#xff0c;我们可以先找到所有的烂苹果&#xff0c;把它加入到队列中&#xff0c;然后再同时让这几个苹果向外面腐蚀&#xff0c;我们可以用一个boolean数组来表示是否被腐蚀&#xff0c;也可以直接在原数组中将这…

李宏毅2022机器学习/深度学习 个人笔记(2)

本系列用于推导、记录该系列视频中本人不熟悉、或认为有价值的知识点 本篇记录第一讲&#xff08;选修&#xff09;&#xff1a;神奇宝贝分类&#xff08;续&#xff09; 如图&#xff0c;boundary变为直线&#xff0c;结果也有上升 我们不一定采用高斯几率模型&#xff0c;…

npm 重要知识

1. npm config ls -l 此命令可以查看npm当前所有配置信息 2. .npmrc是npm重要的配置文件 位置在&#xff1a;C:\Users\{用户名} , 如下图 参考下文链接&#xff1a; https://www.cnblogs.com/zhuoss/p/17830408.html

cocos creator 3.6 发布web手机端 加载进度条添加

cocos creator 升级到3.x之后加载进度条取消了&#xff0c;测试了多个3.x版本最终以creator 3.6.3版本&#xff0c;构建了简单的进度加载 参考链接&#xff1a; https://forum.cocos.org/t/topic/137113 打包web-mobile后&#xff0c;没有进度条。加载的时候只显示一个黑屏。…

MYSQL之增删改查(下)

前言&#xff1a; 以下是MySQL最基本的增删改查语句&#xff0c;很多IT工作者都必须要会的命令&#xff0c;也 是IT行业面试最常考的知识点&#xff0c;由于是入门级基础命令&#xff0c;所有所有操作都建立在单表 上&#xff0c;未涉及多表操作。 4.3 高级查询 4.3.1 聚合函…

【Unity学习笔记】第十三 · tag与layer(运行时创建tag和layer)

参考&#xff1a; Unity手册 标签Unity手册 LayersIs it possible to create a tag programmatically?脚本自动添加tag和Layer 注&#xff1a;本文使用Unity版本是2022.3.23f1 转载引用请注明出处&#xff1a;&#x1f517;https://blog.csdn.net/weixin_44013533/article/de…

利用OpenCV4.9制作自己的线性滤波器!

返回:OpenCV系列文章目录&#xff08;持续更新中......&#xff09; 上一篇&#xff1a;OpenCV4.9使用 inRange 的阈值操作 下一篇 :OpenCV系列文章目录&#xff08;持续更新中......&#xff09; 目标 在本教程中&#xff0c;您将学习如何&#xff1a; 使用 OpenCV 函数 f…

Jenkins和gitlab实现CICD

1 背景 在开发TracerBackend服务的时候&#xff0c;每次更改代码之后需要推送到gitlab&#xff0c;然后ssh登录到Ubuntu的服务器上部署新的代码。服务成功启动之后&#xff0c;在本地执行测试用例&#xff0c;觉得这一套操作流程还是挺复杂的。想起公司的代码发布流程&#xf…

git工具简单使用

文章目录 git上传克隆README.gitignore常用指令冲突 git 进行版本控制的版本控制器。安装git yum install -y git 配置git git config --global user.email "youexample.com" 告诉git你的邮箱是什么&#xff1f;最好输入你的gitee的注册邮箱git config --global …

面向对象(封装,继承,多态)

1.封装【encapsulation】 【/ɪnˌkpsjuˈleɪʃ(ə)n/】 在面向对象程式设计方法中&#xff0c;封装&#xff08;英语&#xff1a;Encapsulation&#xff09;是指一种将抽象性函式接口的实现细节部分包装、隐藏起来的方法。 封装可以被认为是一个保护屏障&#xff0c;防止该…

Day60 单调栈 part03

Day60 单调栈 part03 最后一天啦&#xff01;完结撒花~ 84.柱状图中最大的矩形 我的思路&#xff1a; 感觉和接雨水差不多&#xff0c;只需要多考虑一些情况 双指针 lheight 和 rheight 分别是用来存储每个柱子的左边界和右边界的数组。 解答&#xff1a; class Solutio…

vue element ui 打开弹窗出现黑框问题

文章目录 问题描述解决方案 问题描述 大家好&#xff01;今天是2024年4月20日 | 农历三月十二&#xff0c;周六的我又做在公司里面写起了代码 今天在做项目的时候遇到一个奇怪的问题&#xff0c;如下图所示&#xff1a; 因为这个页面我做了两个弹框&#xff0c;先弹出来第一个弹…

前端工程化01-复习jQuery当中的AJAX

4.1、基础概念 什么是服务器 一台存储网站内容、网站文件的电脑 什么是资源 网站中使用的文件&#xff08;html、css、图片、…&#xff09;这些东西就叫做资源数据也是服务器上的资源&#xff0c;而且是一个网站的灵魂 客户端 客户端应该指上网的设备但是在前端开发中&a…

SQLite 的命令行 Shell(三十一)

返回&#xff1a;SQLite—系列文章目录 上一篇&#xff1a;SQLite FTS5 扩展&#xff08;三十&#xff09; 下一篇&#xff1a;SQLite—系列文章目录 1. 入门 SQLite 项目提供了一个名为 sqlite3&#xff08;或 Windows 上的sqlite3.exe&#xff09;的简单命令行程序 …