java控制线程(二)

Java零基础之多线程篇:线程控制 在计算机科学中,多线程是现代操作系统和应用程序的关键概念之一。通过使用多线程,可以同时执行多个任务,提高程序的运行效率。在Java开发语言中,多线程的概念被广泛应用,并且Java提供了丰富的多线程控制机制,使得开发人员能够更好地控制线程的行为。本文将介绍Java多线程中的线程控制相关内容,包括线程的创建和启动、线程的睡眠和唤醒、线程的等待和通知等方面。通过掌握这些线程控制技术,我们可以更加灵活地处理多线程程序中的并发问题。 阅读详情

java控制线程(二)

            控制线程-守护线程

后台线程:

what:

有一种线程,它是在后台运行的,它的任务是为其他的线程提供服务,这种线程被称为“后台线程(Daemon Thread)”
又称为"守护线程“或”精灵线程“。
JVM的垃圾回收机制就是典型的后台线程。

特征:

如果所有的前台线程都死亡,后台线程会自动死亡。

How:

调用Thread对象的setDaemon(true)方法可以将执行线程设置为后台线程。
示例:

public class DaemonThreadDaemon extends Thread {
    @Override
    public void run() {
        for (int i = 0; i < 100; i++) {
            System.out.println(getName() + i);
        }
    }

    public static void main(String[] args) {
        DaemonThreadDaemon t1 = new DaemonThreadDaemon();
        t1.setDaemon(true);
        t1.start();
        for (int i = 0; i < 10; i++) {
            System.out.println(Thread.currentThread().getName() + "  " + i);
        }

    }
}

结果:

在这里插入图片描述
Thread类还提供了一个isDaemon()方法,用于判定指定线程是否为后台线程。

主线程默认是前台线程,t线程默认也是前台线程。并不是所有的线程默认都是前台线程----前台线程创建的子线程
默认是前台线程,后台线程创建的子线程默认是后台线程。

!:
前台线程死亡后,JVM会通知后台线程死亡,但从它接收指令到做出响应,需要一定的时间。而且
要将某个线程设置为后台线程,必须在该线程启动之前设置,也就是说,setDaemon(true)必须在start()
方法之前调用,负责会引发IllegalThreadStateException异常。

最后:猜猜这是哪?
在这里插入图片描述

元

Java多线程示例之线程控制 Java多线程两个例子,一个是自定义线程池方法实现多线程运行个数的控制,可以解决多线程内存不足的问题。另一个是利用线程通信,读写先关的典型实例 立即下载

相关推荐

别再手动填数据了!Vivado里用.coe文件给ROM IP核预装数据的保姆级教程

本文详细介绍了在Vivado中使用.coe文件为ROM IP核预装数据的全流程教程,包括文件格式规范、数据转换技巧和Vivado配置指南。通过自动化数据加载,开发者可以显著提升FPGA开发效率,避免手动输入错误,适用于查找表、波形存储等多种应用场景。

weixin_33377602的博客 337

Java——后台线程_setDaemon ( true )语句

对 Java 程序来说,只要还有一个前台线程在运行,这个进程就不会结束,如果一个进程中只有后台线程运行,这个进程就会结束。 这里提到的前台线程和后台线程是一种相对的概念,新创建的线程默认都是前台线程,如果某个线程对象在启动之前调用 setDaemon ( true )语句,这个线程就变成一个后台线程。 案例: class DamonThread implements Runnable { //创建 DamonThread类,实现 Runnable接口 public void run() { //实现

XQC_KKK的博客 455

视频监控设备(NVR、IPC等)如何通过国标GB28181接入到视频监控平台,以及接入过程如何测试视频接入是否成功

GB/T28181标准广泛的应用,视频监控设备通过国标GB28181接入视频监控平台的过程变成程序化、标准化的互联过程,确保了视频监控设备能够在不同系统、不同网络环境下实现远程、跨区域、跨级别的访问和控制。版本有GB28181-2011、2016、2022几个常用版本,威迪斯特的视频监控平台完全支持GB28181的这几个版本,能够实现不同品牌视频监控设备的国标视频接入(国标视频监控接入),或者为国标28181视频接入(国标28181视频监控接入),也为国标281818接入(国标GB/T28181接入。

weixin_70208651的博客 1万+

JAVA中的线程控制

线程通信主要涉及到wait()、notify()和notifyAll()这三个方法。线程控制是Java并发编程中的核心内容,涉及到线程的创建、同步、通信、调度等多个方面。使用线程池 线程池可以有效地管理和控制线程的创建和销毁,提高系统性能。ThreadLocal类可以创建线程局部变量,确保每个线程都有自己独立的变量副本。通过这些机制,我们可以更好地管理和控制线程的执行,编写出高效、稳定的并发程序。线程中断是一种协作机制,用于通知线程中断其正在执行的任务。Java提供了线程调度器来控制线程的执行顺序。

qa3629723的博客 725

如何搭建一个vue项目(完整步骤)

查看版本的两种方式 出现版本号则说明安装成功(最新的以官网为准) 这里注意:安装vue-cli对node.js的版本是有要求的 装的两种方式:输入cmd命令 查看安装的版本(显示版本号说明安装成功) 如果你原来有版本或者版本比较低,可以升级...

m0_67392661的博客 5585

激光雷达点云配准:ICP与NDT算法详解

激光雷达点云配准:ICP与NDT算法详解​ ,人工智能,计算机视觉,大模型,AI,本文深入解析激光雷达点云配准的ICP与NDT算法。阐述了点云配准基础概念与评价指标,详解ICP算法原理、流程、最优变换矩阵计算、优缺点及改进版,给出Python代码示例;同样解析NDT算法的原理、流程、模型构建、优缺点、参数选择与代码示例。还对比两者在精度、效率、鲁棒性和适用场景的差异,提供算法选择建议,介绍实际应用案例、常见问题及解决方法,探讨算法发展趋势。

不踩坑,不知道坑有多深;不总结,踩过的坑白踩。 15万+

LeetCode(多线程)- 1115. 交替打印 FooBar

题目链接:点击打开链接 题目大意:略。 解题思路:略。 相关企业 阿里巴巴 亚马逊(Amazon) AC 代码 // 手太阴肺经 BLOCKING Queue public class FooBar { private int n; private BlockingQueue<Integer> bar = new LinkedBlockingQueue<>(1); private BlockingQueue<Integer&

508

2025年广东省职业院校技能大赛高职组“区块链技术应用”正式赛题解析答案(标准答案参阅)

某公司规划开发一个区块链供应链金融平台,包括核心企业、供应商、银行等角色,通过智能合约代码逐步构建区块链供应链金融平台的基本功能,实现银行向核心企业提供授信并发行数字凭证,企业与企业之间转让数字凭证。此外需要完成区块链供应链金融平台的前后端,实现基本的业务逻辑

我是网络安全兼技能大赛工程师,专注网络安全技术学习与技能大赛实战!持续分享最新的技术文章,帮你少走弯路,一起在技术赛道上进步~ 1270

java线程控制

这里我们取getName方法 就是获取当前的线程名称 判断 如果是 孙权或刘备 则 执行Thread中的sleep 里面是休眠的时间数。这是可以看到 我们将线程的次数 改成了 用age变量控制 而这个变量是customException构造函数中控制的。我们看到 刚开始 我们的孙权也是非常的给力 但再执行一次 你会发现 他们谁快谁慢 完全是随机的。这是 我们将 com2和com3 都设置成立守卫线程 主线程结束之后 他们也会结束 我们运行代码。

weixin_45966674的博客 630

RK3588开发笔记-USB3.0接口调试

RK3588平台是一款强大的处理器,但要充分发挥其性能,需要正确调试其各种接口,包括USB 3.0接口。USB 3.0接口提供了更快的数据传输速度,但也可能面临一些问题。本篇博客将介绍如何在RK3588平台上调试USB 3.0接口,以确保其稳定性和性能。RK3588芯片具有强大的USB资源,包括多个USB接口和高速数据传输能力。RK3588通常具有多个USB接口,包括USB 2.0和USB 3.0。USB 2.0用于低速和全速设备连接,而USB 3.0则用于高速设备连接。

flypig has a dream! 2560

ANPC三电平拓扑双脉冲试验的原理与实施

ANPC三电平拓扑因损耗低、谐波小、应力均衡而广泛应用,但其存在短、长两类换流通道,寄生电感和开关应力差异显著。短通道尖峰小、可靠性高;长通道应力严苛。因此需分别制定两套独立双脉冲测试方案,针对不同时段和器件(如T1、T5、T6、T4及对应二极管)全面考核开关特性。

嵌入式老牛的博客 349

Java多线程(二)—控制线程

文章目录join线程后台线程线程睡眠Sleep线程让步Yield设置线程优先级 Java线程Thread提供一些工具方便控制线程的执行。 join线程 Thread提供了让一个线程等待另一个线程完成的方法——join()方法,当程序调用线程的join()方法时,调用线程(比如主线程)将被阻塞,直到被join()方法加入的join线程执行完为止。 JoinThread jt = new JoinThread("被join的线程"); jt.start();//main线程调用了子线.

沧海一粟 301

【Java核心高阶进阶】44-Java8核心新特性

模块十:Java新特性演进 · 第 1 篇Java 8 是 Java 语言历史上最重要的一次发布,它引入的函数式编程范式从根本上改变了 Java 的编码方式。即便到了 JDK 21 的今天,Lambda、Stream、Optional 仍是日常开发的高频工具。本篇将深入这些特性的语法、原理与底层机制,帮助你不仅会用,更知其所以然。

gaochufukanyongren的博客 24

java多线程(二) 控制线程与线程同步

控制线程 对于线程的控制: 一 join()等待线程完成 二 sleep() 线程主动进入阻塞态与yeild() 线程让步 三 后台线程 join() public class MyThread extends Thread { @Override public void run() { System.out.println("2"); } ...

qq_28603127的博客 370

SAP B1中文培訓教材_SDK

公司内部培训资料,对开发工具 ,DIAPI, UIAPI,Add-ON有详细解说

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

java多线程二:控制线程方法

join线程: 1、Thread线程提供了让一个线程等待另外一个线程执行完成的方法:join方法。当某个正在执行的线程A调用了B线程的join()方法时,那么A线程将会被阻塞,知道B线程执行完成为止才会可能执行。 2、join有三种重载形式:   join():等待被join的线程执行完成。   join(long mills):等待被join的线程的最长时间为mills毫秒,如果在mil...

心态决定一切 141

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

JAVA控制线程执行顺序的方法(二)

使用ReentrantLock中的lock(),unlock()配合Condition的await(),signal()方法。示例如下: import java.util.concurrent.locks.Condition; import java.util.concurrent.locks.ReentrantLock; public class ControlOrder2 { static ReentrantLock lock=new ReentrantLock(); static b

zikai_liang的博客 112

ssm框架搭建

这个是一个在idea上成功跑起来的ssm框架项目,保存在这里方便以后使用直接下载

实现交替控制线程

1.实现如下结果12A34B56C78D910E1112F1314G1516H1718I1920J2122K2324L2526M2728N2930O3132P3334Q3536R3738S3940T4142U4344V4546W4748X4950Y5152Z import java.util.concurrent.locks.Condition; import java.util.concur...

haogexiaole的博客 221

Java 当中的线程(二)-- MarsChen Java4Android 教程学习笔记

下载地址:http://www.marschen.com/forum.php?mod=viewthread&tid=7756实现线程的第二种方法 JDK提供一个Runnable 的接口,实现该接口,复写run() 方法。生成已实现Runnable 接口的对象,传入Thread() 类,生成Thread() 的对象,调用start() 方法。 和继承Thread 的方法一样,都是重写run() 方法

渣渣随手记 555

【线程】,java多线程常见面试题

(1)调用start方法就会创建一个PCB (2)在使用一个链表把PCB连接起来,而当再一次start的时候会创建一个一样的PCB这时候就加不到链表当中去了 *d).run方法属于自定义的类,而start属于Thread类 2.如何区分run方法和start方法 2.1打印线程的名称 2.2我们可以借助jconsole工具来查看在调用run方法和start方法的时候有没有创建新新线程,在这里就不演示了,感兴趣的可以下来看看 注意:当有两个线程的时候,如果t1的start在前,t2的start在..

m0_54852680的博客 89

Java 线程通信

当线程在系统内运行时,线程的调度具有一定的透明性,程序通常无法准确控制线程的轮换执行,但 Java 也提供了一些机制来保证线程协调运行。 传统的线程通信 假设现在系统中有两个线程,这两个线程分别代表存款者和取钱者——现在假设系统有一种特殊的要求,系统要求存款者和取钱者不断地重复存款、取钱的动作,而且要求每当存款者将钱存入指定账户后,取钱者就立即取出该笔钱。不允许存款者连续两次存钱,也不允...

weixin_30343157的博客 124

JAVA八股与代码实践----使用三个线程交叉打印ABC 10次

这里介绍三种方法。

weixin_48968553的博客 313

java程序中,如何安全的结束一个正在运行的线程?interrupt()

java程序中,如何安全的结束一个正在运行的线程? 2013年02月27日 ⁄ 综合 ⁄ 共 2321字 ⁄ 字号 小 中 大 ⁄ 评论关闭 如何停止java的线程一直是一个开发多线程程序常遇到的一个问题。在Java的多线程编程中,java.lang.Thread类型包含了一些列的方法start(), stop(), stop(Throwable) and

cs 681

Java线程超时控制的实现

一.何时需要超时控制   超时控制一般使用阻塞时间比较长的操作上,有可能是和远程数据库的连接,也有可能是网络下载,在程序超时后, 往往需要进行一些操作,比如退出线程,或者重新执行.   二.实现方法   方法1   实现描述:使用一个守护线程作为计时器,并且在计时结束时抛出一个未检测异常。   具体实现:   类1:守护线程类 Java代码

zengsky的专栏 2093

Java 中如何终止一个正在运行的线程

作者简介:大家好,我是码炫码哥,前中兴通讯、美团架构师,现任某互联网公司CTO,兼职码炫课堂主讲源码系列专题代表作:《jdk源码&多线程&高并发》,《深入tomcat源码解析》,《深入netty源码解析》,《深入dubbo源码解析》,《深入springboot源码解析》,《深入spring源码解析》,《深入redis源码解析》等联系qq:184480602,加我进群,大家一起学习,一起进步,一起对抗互联网寒冬。

smart_an的专栏 1111

java有几种运行方式_Java 多线程有序执行的几种方法总结

Java 多线程有序执行的几种方法总结同事无意间提出了这个问题,亲自实践了两种方法。当然肯定还会有更多更好的方法。方法一import java.util.concurrent.atomic.AtomicInteger;public class OrderedThread1 {static AtomicInteger count = new AtomicInteger(0);public stati...

weixin_42513814的博客 235

java workqueue_Java线程池中BlockingQueue的作用

关于线程池中BlockingQueue的疑问对于Java线程池,相信大家都或多或少使用过。关于其用法和原理介绍,网上已经有很多非常精彩的文章,珠玉在前,我就不献丑了。不了解的,可以参考这篇文章。今天我想讲的,是关于我对Java线程次的两个疑问,当然高手可以略过了。1.为什么线程池要使用BlockingQueue,而不是ArrayList或别的什么列表?2.既然使用了BlockingQueue,为什...

weixin_30646295的博客 761
上一篇: java控制线程(一)
下一篇: java控制线程(三)
Round_Yuan
博客等级 码龄10年 26粉丝 78原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值