Java线程阻塞:原因

Java线程阻塞:原因

  • 1. sleep()
  • 2. suspend() 和 resume()(不推荐)
  • 3. yield()
  • 4. wait() 和 notify()/notifyAll()


💖The Begin💖点点关注,收藏不迷路💖

线程阻塞是一个重要的概念,它决定了线程何时能够执行。以下是几种常见的线程阻塞原因。

1. sleep()

sleep()方法使线程暂停执行指定的时间(毫秒为单位),期间线程不会占用CPU资源。常用于等待资源就绪或实现简单的延时。

try {  Thread.sleep(1000); // 线程暂停1秒  
} catch (InterruptedException e) {  e.printStackTrace();  
}

2. suspend() 和 resume()(不推荐)

这两个方法曾用于暂停和恢复线程,但已废弃,因为它们可能导致死锁和其他同步问题。现代Java程序应避免使用。

最佳实践: 避免使用suspend()和resume(),改用wait()/notify()或Lock/Condition等更现代的同步机制。

3. yield()

yield()方法建议当前线程放弃CPU,但不保证立即发生。它可以在一定程度上提高程序的响应性,但过度使用可能影响性能。

Thread.yield(); // 建议当前线程放弃CPU

4. wait() 和 notify()/notifyAll()

wait()使线程等待,直到其他线程调用notify()或notifyAll(),或等待超时。这是线程间通信的关键机制,用于协调线程间的执行顺序。

synchronized(obj) {  while (!condition) {  obj.wait(); // 等待条件满足  }  // 处理逻辑  
}  // 在另一个线程中  
synchronized(obj) {  // 修改条件  obj.notify(); // 或 obj.notifyAll();  
}

在这里插入图片描述


💖The End💖点点关注,收藏不迷路💖

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

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

相关文章

Linux下docker部署drools并集成项目使用

Linux下docker部署drools并集成项目使用 一、背景介绍二、 思路方案三、过程四、总结 一、背景介绍 上一篇文章是对规则引擎的基本介绍,本篇文章是对于drools规则引擎的基本使用。 二、 思路方案 前提:首先保证主机联网、有docker环境、保证Linux空闲…

OS—文件系统

目录 一. 文件系统结构I/O 控制层基本文件系统文件组织模块逻辑文件系统 二. 文件系统布局文件系统在磁盘中的结构主引导记录(MasterBoot Record,MBR)引导块(boot block)超级块(super block)文件系统中空闲块的信息 文件系统在内存中的结构 三. 外存空间管理空闲表法空闲链表法…

面向对象 - 概述、类的创建、 实例化与内存解析

一、学习面向对象的三条主线 Java类及类的成员:(重点)属性、方法、构造器;(熟悉)代码块、内部类面向对象的特征:封装、继承、多态、(抽象)其他关键字的使用:…

北欧风情在浦东,5 大公司为你定制美好

在繁华的浦东,追求高品质生活的您,是否渴望拥有一个充满北欧风情的温馨家园?今天,我们将为您推荐 5 家顶尖的装修公司,它们将以精湛的工艺和独特的设计理念,为您量身定制梦想中的北欧风家居。 推荐一&#…

大数据-56 Kafka SpringBoot与Kafka 基础简单配置和使用

点一下关注吧!!!非常感谢!!持续更新!!! 目前已经更新到了: Hadoop(已更完)HDFS(已更完)MapReduce(已更完&am…

大厂的堡垒机到底是啥?为什么需要它?

什么是堡垒机 堡垒机,即在一个特定的网络环境下,为了保障网络和数据不受来自外部和内部用户的入侵和破坏,而运用各种技术手段监控和记录运维人员对网络内的服务器、网络设备、安全设备、数据库等设备的操作行为,以便集中报警、及…

【文件解析漏洞】实战详解!

漏洞描述: 文件解析漏洞是由于中间件错误的将任意格式的文件解析成网页可执行文件,配合文件上传漏洞进行GetShell的漏洞! IIS解析漏洞: IIS6.X: 方式一:目录解析 在网站下建立文件夹的名字为.asp/.asa 的文件夹,其目…

免费发送邮件两种接口方式:SMTP和邮件API

SMTP与邮件API在处理大批量邮件发送时,哪个更稳定? 在现代信息化的社会中,邮件已成为不可或缺的沟通工具。无论是个人还是企业,发送邮件都是日常工作的一部分。AokSend将详细介绍两种常用的免费发送邮件接口方式:SMTP…

麒麟V10系统统一认证子系统国际化

在适配麒麟V10系统统一认证子系统国际化过程中, 遇到了很多的问题,关键是麒麟官方的文档对这部分也是粗略带过,遇到的问题有: (1)xgettext无法提取C源文件中目标待翻译的字符串。 (2)使用msgf…

程序一调用这个接口就会崩溃, 因为他的静态库添加是放在release文件下,而我用的debug模式

程序一调用这个接口就会崩溃 因为他的静态库添加是放在release文件下 而我用的debug模式 DESTDIR ../x64/ReleaseINCLUDEPATH ./../3rdparty/ZZDecode/include LIBS -lopengl32 \-lglu32 \-luser32 \./../3rdparty/ZZDecode/x64/release/ZZDecodeInterface.lib

Python软件开发:AI毕业设计生成器引领未来

🌟 革新软件开发:Python毕业设计生成器引领未来 🚀 目录 🌟 革新软件开发:Python毕业设计生成器引领未来 🚀🎓 课题简介🌟 开发目的📈 开发意义 📚 研究方法&…

Jvm的无关性

Jvm具有无关性,主要体现在两个方面: 平台无关性:任何操作系统都能运行Java代码。 语言无关性:Jvm能运行除Java以外的其他代码。 Java源代码首先需要使用Javac编译器编译成 .class文件,然后由Jvm执行.class文件&…

如何准备 Java API 文档以供下游对接

个人名片 🎓作者简介:java领域优质创作者 🌐个人主页:码农阿豪 📞工作室:新空间代码工作室(提供各种软件服务) 💌个人邮箱:[2435024119@qq.com] 📱个人微信:15279484656 🌐个人导航网站:www.forff.top 💡座右铭:总有人要赢。为什么不能是我呢? 专栏导…

如何在 Odoo 16 Studio 中添加智能选项卡和管道

具有优雅定制功能的软件系统(如 Odoo ERP)可让客户调整和个性化其公司应用程序。定制在过去并不普遍,但现在对于组织来说,满足客户需求和需求激增至关重要。即使许多行业的竞争很少,但当前的竞争市场仍不稳定。尽管引入…

Mybatis批量更新数据库错误

问题:记录一次使用Mybatis批量更新数据库的错误,错误信息,Error updating database. Cause: org.postgresql.util.PSQLException: 错误: 字段 "update_time" 的类型为 timestamp without time zone, 但表达式的类型为 text 建议&am…

Prometheus+Grafana 监控平台实践-搭建常用服务监控告警

前言 Prometheus 是一个开放性的监控解决方案,通过各种 Exporter 采集当前主机/服务的数据,和 Grafana 相结合可以实现强大的监控和可视化功能 本篇将分享使用 docker compose 构建 Prometheus+Grafana,并监控之前文章所搭建的主机&服务,分享日常使用的一些使用经验 文…

7月速览| 卓翼飞思获荣誉、助大赛、展技术!

行业殊荣 ● 荣获 “全国低空经济先导产业行业产教融合共同体” 常务理事单位称号,助力打造低空经济产业领域人才智库。 “共同体”是低空经济领域,国家职教战略与新质生产力发展战略融合对接的重要成果。旨在汇聚优质资源,搭建交流平台&…

传统放牧方式与北斗科技的碰撞:北三短报文头羊定位追踪器PD28守护放牧生活

在大草原的广袤天地中,放牧生活是蒙古族人民的传统之一。然而,除了美丽和自由,放牧生活也伴随着一些危险。以前由于科技落后,人工成本低,主要依靠人力去放牧,牧民放牧顶风踏雪走个几十公里都极为寻常。除了…

AI赋能交通治理:非机动车监测识别技术在城市街道安全管理中的应用

引言 城市交通的顺畅与安全是城市管理的重要组成部分。非机动车如自行车、电动车、摩托车等在城市交通中扮演着重要角色,但同时也带来了管理上的挑战。尤其是在机动车道上误入非机动车的现象,不仅影响交通秩序,还可能引发交通事故。思通数科…

upload-labs靶场(1-19关)

upload-labs靶场 简介 upload-labs是一个使用php语言编写的&#xff0c;专门收集渗透测试过程中遇到的各种上传漏洞的靶场。旨在帮助大家对上传漏洞有一个全面的了解。目前一共19关&#xff0c;每一关都包含着不同上传方式。 注意&#xff1a;能运行<?php phpinfo();?&…