多见线程方法

news2024/11/24 19:28:07

多见线程方法

本节的类代码可以查看上一节的类代码

线程暂停

Thread.sleep(1000);//暂停1000毫秒

这就有点像在时间里面学习的*sleep()*函数了

package multiThread2;

public class main {
    public static void main(String[] args) {
        Animal a1 = new Animal("张三",18);
        Animal a2 = new Animal("旺财",3);
//        Thread t1 = new Thread(){
//            public void run(){
//                for (int i = 0; i < 10; i++) {
//                    System.out.println(a1);
//                }
//            }
//        };
//        t1.start();
        Thread t2 = new Thread(() -> {
            int second=0;
            for (int i = 0; i < 10; i++) {
                try {
                    Thread.sleep(1000);
//                    System.out.println(a2);
                }catch (Exception e){
                    e.printStackTrace();
                }
                System.out.println(second++);
            }
        });
        t2.start();
    }
}

在这里插入图片描述

加入到当前线程

t.join()

主要作用是将多个线程分开,成为多个进程,只有完成了前一个进程才能进行下一个进程

package multiThread2;

public class main {
    public static void main(String[] args) throws InterruptedException {
        Animal a1 = new Animal("张三",18);
        Animal a2 = new Animal("旺财",3);
        Thread t1 = new Thread(){
            public void run(){
                for (int i = 0; i < 10; i++) {
                    System.out.println(a1);
                }
            }
        };
        t1.start();
        t1.join();
        Thread t2 = new Thread(() -> {
            int second=0;
            for (int i = 0; i < 10; i++) {
                try {
                    Thread.sleep(1000);
                    System.out.println(a2);
                }catch (Exception e){
                    e.printStackTrace();
                }
                System.out.println(second++);
            }
        });
        t2.start();
    }
}

在这里插入图片描述
这次图片有点大

线程的优先级

t.setPriority(int)

优先级从最大为10,一直到最小为1
为了方便,设计了

Thread.MAX_PRIORITY
Thread.MIN_PRIORITY

但是优先级只是一个相对的优先,优先级更大的只是更大几率占据了CPU的资源,而不是全部占据,这就导致可能优先级更低的线程会先进行完,
这也是它与join方法的主要区别

package multiThread2;

public class main {
    public static void main(String[] args) throws InterruptedException {
        Animal a1 = new Animal("张三",18);
        Animal a2 = new Animal("旺财",3);
        Thread t1 = new Thread(() -> {
            for (int i = 0; i < 10; i++) {
                System.out.println(a1);
            }
        });
        Thread t2 = new Thread(() -> {
            for (int i = 0; i < 10; i++) {
                System.out.println(a2);
            }
        });
        t1.setPriority(Thread.MAX_PRIORITY);
        t2.setPriority(Thread.MIN_PRIORITY);
        t1.start();
        t2.start();
    }
}

在这里插入图片描述

临时暂停

t.yield();

当前线程,临时暂停,使得其他线程可以有更多的机会占用CPU资源

package multiThread2;

public class main {
    public static void main(String[] args) throws InterruptedException {
        Animal a1 = new Animal("张三",18);
        Animal a2 = new Animal("旺财",3);
        Thread t1 = new Thread(() -> {
            for (int i = 0; i < 10; i++) {
                System.out.println(a1);
            }
        });
        Thread t2 = new Thread(() -> {
            for (int i = 0; i < 10; i++) {
                Thread.yield();
                System.out.println(a2);
            }
        });
        t1.start();
        t2.start();
    }
}

在这里插入图片描述

守护线程

t.setDaemon();

守护线程的概念是: 当一个进程里,所有的线程都是守护线程的时候,结束当前进程。
守护线程通常会被用来做日志,性能统计等工作。

这一节主要是Thread里面的一些方法,可以稍微记一下

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Springboot 整合 DolphinScheduler(一):初识海豚调度

目录 一、什么是 DolphinScheduler 二、DolphinScheduler 的特性 三、DolphinScheduler 核心架构 四、单机环境部署流程 1、下载安装包 2、上传至服务器&#xff0c;解压缩 3、单机启动 4、登录 dolphinscheduler UI 5、配置数据库【非必需】 &#xff08;1&#xff…

timm中模型更换huggingface模型链接

现在timm默认使用huggingface的链接了&#xff0c;错误链接如下&#xff1a; (MaxRetryError("HTTPSConnectionPool(hosthuggingface.co, port443): Max retries exceeded with url: /timm/swinv2_tiny_window8_256.ms_in1k/resolve/main/model.safetensors (Caused by C…

Docker Compose 入门

想象一下在服务器上运行静态页面的场景。对于这项任务&#xff0c;NGINX 服务器是一个不错的选择。我们在 static-site/index.html 路径下有一个简单的 HTML 文件&#xff1a; 通过使用 Docker&#xff0c;我们将使用以下官方镜像运行 NGINX 服务器 docker run --rm -p 8080:…

C++ 之插件机制初试

C 之插件机制 C 插件架构允许一个应用程序以动态链接库&#xff08;DLLs 在 Windows&#xff0c;或 .so 在 Unix-like 系统&#xff09;的形式加载和使用插件。以下是构建 C 插件架构的一般步骤和考虑因素&#xff1a; 定义插件接口 首先&#xff0c;定义一个插件接口&#…

R包的4种安装方式及常见问题解决方法

R包的4种安装方式及常见问题解决方法 R包的四种安装方式1. install.packages()2. 从Bioconductor安装3. 从本地源码安装4. 从github安装 常见问题的解决1. 版本问题2. 网络/镜像问题3.缺少Rtools R包的四种安装方式 1. install.packages() 对于R自带的包的安装一般都可以通过…

LeetCode热题100刷题2:283. 移动零、11. 盛最多水的容器、15. 三数之和、42. 接雨水

283. 移动零 挺简单的没啥说的 class Solution { public:void moveZeroes(vector<int>& nums) {//快慢指针 // 快指针负责往前遍历&#xff0c;慢指针记录快指针遍历过的把0撵走的最后一个元素的位置// 然后快指针遍历完之后&#xff0c;慢指针到结尾直接赋0就行in…

Python逻辑控制语句 之 判断语句--if语句的基本结构

1.程序执行的三大流程 顺序 分支&#xff08;判断&#xff09; 循环 2.if 语句的介绍 单独的 if 语句,就是 “如果 条件成⽴,做什么事” 3.if 语句的语法 if 判断条件: 判断条件成立&#xff0c;执行的代码…

PyCharm 2024.1 版本更新亮点:智能编程,高效协作

目录 1. 前言2. 更新内容2.1 智能编码体验2.1.1 Hugging Face 文档预览2.1.2 全行代码补全 2.2 提升编辑器体验2.2.1 粘性行功能2.2.2 编辑器内代码审查 2.3 全新终端体验&#xff08;测试版&#xff09;2.3.1 新终端 Beta 2.4 智能助手&#xff08;特定版本和专业用户&#xf…

操作符详解(下) (C语言)

操作符详解下 操作符的属性1.优先级2.结合级 表达式求值1.整型提升2.如何进行整形提升呢&#xff1f;3.算术转换4.问题表达式解析 操作符的属性 C语言的操作符有2个重要的属性&#xff1a;优先级、结合性&#xff0c;这两个属性决定了表达式求值的计算顺序。 1.优先级 优先级…

MSPM0G3507——定时器例程讲解4——timx_timer_mode_periodic

以下示例以周期模式配置TimerG并切换LED。周期从500ms开始&#xff0c;每次切换减少50ms&#xff0c;直到周期为100ms&#xff0c;然后重复。设备在等待中断时保持待机模式 #include "ti_msp_dl_config.h"/* ((32KHz / (321)) * 0.5s) 45 - 1 495 due to N1 ticks …

时间复杂度计算

要求算法的时间复杂度时&#xff0c;我们可以分析给定表达式 的阶。让我们来逐步分析&#xff1a; 分析阶的定义&#xff1a; 当我们说一个表达式的时间复杂度是 ( O(g(n)) )&#xff0c;我们指的是当 ( n ) 趋近无穷大时&#xff0c;表达式的增长率与 ( g(n) ) 的增长率相似。…

【计算机网络仿真】b站湖科大教书匠思科Packet Tracer——实验11 IP数据报的发送和转发流程

一、实验目的 1.观察IP数据报的发送和转发流程&#xff1b; 二、实验要求 1.使用Cisco Packet Tracer仿真平台&#xff1b; 2.观看B站湖科大教书匠仿真实验视频&#xff0c;完成对应实验。 三、实验内容 1.构建网络拓扑&#xff1b; 2.观察主机发送IP数据报的过程 3.观察路…

pytest-命令行参数

命令行参数 使用 Pytest 执行用例时&#xff0c;我们经常都是通过命令行来执行的&#xff0c;有同学要说了&#xff0c;我一般是通过编辑器里面直接就执行了&#xff1b;在实际项目中编写用例调试用例&#xff0c;使用编辑器执行用例没问题&#xff0c;但在 CI 集成环境下&…

中霖教育:二级建造师能同时报名参加多个省份的考试吗?

【中霖教育口碑】【中霖教育好吗】 二级建造师考试能同时报名参加多个省份吗?原则上是可以的。 二级建造师的报名过程需满足各省份设定的特定标准&#xff0c;申请者需提供相应省份注册的工程建设企业的工作年限证明&#xff0c;并在报名表上加盖章以证明企业身份。 部分省…

【电源专题】为什么带电量计芯片的电池MOS保护要放在高侧

在实际的电量计电池开发中,发现一个很奇怪的现象。传统电池保护IC往往都是将充电保护和放电保护的两个MOS管放在低侧的。如下所示是文章:【电源专题】读一读单节锂电池保护IC规格书 可以看到M1和M2两个MOS管是放在PB-(也就是电池的负端),我们叫做低端。 而BQ28Z610电…

LC437.路径总和Ⅲ、LC207.课程表

给定一个二叉树的根节点 root &#xff0c;和一个整数 targetSum &#xff0c;求该二叉树里节点值之和等于 targetSum 的 路径 的数目。 路径 不需要从根节点开始&#xff0c;也不需要在叶子节点结束&#xff0c;但是路径方向必须是向下的&#xff08;只能从父节点到子节点&am…

【小沐学AI】Python实现语音识别(whisperX)

文章目录 1、简介1.1 whisper1.2 whisperX 2、安装2.1 安装cuda2.2 安装whisperX 结语 1、简介 1.1 whisper https://arxiv.org/pdf/2212.04356 https://github.com/openai/whisper Whisper 是一种通用语音识别模型。它是在各种音频的大型数据集上训练的&#xff0c;也是一个…

打开防火墙设置提示需要使用新应用以打开此windowsdefender

拿到一台新电脑&#xff0c;装好虚拟机。主机ping虚拟机正常&#xff0c;虚拟机上网也正常&#xff0c;但是虚拟机ping主机ping不通。根据我多年虚拟机使用经验&#xff0c;这显然是因为主机防火墙没关。但是当我准备关闭主机防火墙的时候&#xff0c;发现防火墙设置打不开。界…

rtthread stm32h743的使用(十二)spi设备fal驱动的使用

我们要在rtthread studio 开发环境中建立stm32h743xih6芯片的工程。我们使用一块stm32h743及fpga的核心板完成相关实验&#xff0c;核心板如图&#xff1a; fal驱动的使用是建立在sfud驱动之上的&#xff0c;所以我们在上一节使用的工程基础上继续实验。 1.在上一节工程的基础…

互联网大厂核心知识总结PDF资料

我们要敢于追求卓越&#xff0c;也能承认自己平庸&#xff0c;不要低估3&#xff0c;5&#xff0c;10年沉淀的威力 hi 大家好&#xff0c;我是大师兄&#xff0c;大厂工作特点是需要多方面的知识和技能。这种学习和积累一般人需要一段的时间&#xff0c;不太可能一蹴而就&…