线程状态

线程状态

阻塞状态

import lombok.SneakyThrows;import java.text.SimpleDateFormat;public class T {@SneakyThrowspublic static void main(String[] args) {new Thread(() -> {synchronized (T.class) {try {Thread.sleep(6000);System.out.println(new SimpleDateFormat("yyyy:MM:dd hh:mm:ss sss").format(System.currentTimeMillis()) + ":"+ Thread.currentThread().getName() + "Locked");} catch (Exception e) {e.printStackTrace();}}}, "线程1").start();new Thread(() -> {synchronized (T.class) {/*new Object(),不同锁,不阻塞线程2争抢时间片*/try {System.out.println(new SimpleDateFormat("yyyy:MM:dd hh:mm:ss sss").format(System.currentTimeMillis()) + ":"+ Thread.currentThread().getName() + "Locked");} catch (Exception ex) {}}}, "线程2").start();}}

等待

import lombok.SneakyThrows;import java.text.SimpleDateFormat;
import java.util.concurrent.TimeUnit;public class T {@SneakyThrowspublic static void main(String[] args) {Object o = new Object();new Thread(() -> {synchronized (o) {try {System.out.println(new SimpleDateFormat("yyyy:MM:dd hh:mm:ss sss").format(System.currentTimeMillis()) + ":"+ Thread.currentThread().getName() + "=》5s后才能继续执行");o.wait();} catch (Exception e) {e.printStackTrace();}}}, "线程1").start();new Thread(() -> {synchronized (o) {try {TimeUnit.SECONDS.sleep(5);System.out.println(new SimpleDateFormat("yyyy:MM:dd hh:mm:ss sss").format(System.currentTimeMillis()) + ":"+ Thread.currentThread().getName() + "唤醒");o.notify();//注释此行,永久Waiting} catch (Exception ex) {}}}, "线程2").start();}
}

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

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

502错误分析及处理(Nginx应用服务器出现502错误的原因)

Nginx应用服务器出现502错误的原因很多,但是基本都是资源不够造成的。 包括:内存不足,CPU超标,硬盘满了,另外可能也有程序导致php-fpm停止运行。对应的的解决办法: 内存和CPU超标,通过重启一下php-fpm 和nginx mysql 三个服务可以临时解决,如果是1核1g的配置且经常出现…

【医疗器械质量管理体系GB/T42061-2022法规内容了解】

国标GB/T42061 等同于 国际标准ISO13485(GB/T42061-2022 idt ISO 13485:2016) 4.1 组织要求4.2文件要求5、管理职责6、资源管理7、产品实现8、测量,分析与改进

.NET 8 中利用 MediatR 实现高效消息传递

前言 MediatR 是 .NET 下的一个实现消息传递的库,轻量级、简洁高效,用于实现进程内的消息传递机制。它基于中介者设计模式,支持请求/响应、命令、查询、通知和事件等多种消息传递模式。通过泛型支持,MediatR 可以智能地调度不同类型的消息,非常适合用于领域事件处理。 在本…

ThrottleStop tpl 无法解锁功耗墙 原因

https://www.ibmnb.com/thread-2041588-1-1.html 1. 主界面设置不要勾选Disable-Turbo / BD-PROCHOT (不然后面的TPL,FIVR配置可能不起作用的)需要勾选Speed-shift EPP (用内置频率管理, 128默认就可以)SpeedStep 也勾上(提升响应速度)选择Pefermance性能模式(下面具体FL…

读零信任网络:在不可信网络中构建安全系统18零信任代理

零信任代理1. 零信任代理 1.1. 零信任代理是应用级代理服务器,用来保护零信任网络,它是处理认证、授权以及加密的基础设施 1.2. 零信任代理分为反向代理和前向代理两种工作模式1.2.1. 运行时可以同时采用这两种工作模式,也可以只采用其中的一种1.2.2. 在反向代理工作模式下,…

centos7 下安装运行 docker-jitsi-meet stable-9646 版本

1 安装docker:2 3 yum install -y yum-utils device-mapper-persistent-data lvm24 yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo5 yum install docker-ce6 7 docker --version8 9 systemctl st…

什么是外卖霸王餐项目,怎么运营霸王餐平台

在当今快节奏的社会中,外卖行业如火如荼,不仅为消费者提供了便捷的就餐方式,也为商家开辟了新的市场渠道。在这样的背景下,“外卖霸王餐项目”逐渐走进了公众视野,成为商家吸引顾客、提升品牌知名度的一种创新营销手段。那么,什么是外卖霸王餐项目?又如何做好其运营呢?…

PbootCMS后台关闭验证码,登录提示验证码不能空的解决方法

PbootCMS后台关闭验证码,登录提示验证码不能空的解决方法apps/admin/controller/IndexController.php 大概在126行 if (!$checkcode) {json(0, 验证码不能为空!); } 改成 if (!$checkcode && $this->config(admin_check_code)) {json(0, 验证码不能为空!); }扫码…

CAD二次开发入门:WPF类库

参考学习视频:https://www.bilibili.com/video/BV16Y411v7kr/?spm_id_from=333.337.search-card.all.click&vd_source=fbb64ea20b269b753497bf6c2499fc29第一步:创建WPF类库,并写CAD调用方法 main页面添加以下内容:<Grid><Button Height="50" Clic…

Mac下go安装

https://go.dev/dl/ 查看是arm64,还是x86-64命令: -uname -a 我的是 Darwin okerdeMacBook-Pro.local 23.5.0 Darwin Kernel Version 23.5.0: Wed May 1 20:13:18 PDT 2024; root:xnu-10063.121.3~5/RELEASE_ARM64_T6030 arm64安装后,重新打开终端

GreatSQL 并行Load Data加快数据导入

GreatSQL 并行Load Data加快数据导入 数据库信息 数据库版本:GreatSQL 8.0.32-25 Clickhouse表需要导入到 GreatSQL 中,表数据量庞大所以选用导出CSV的方式。 测试数据复现操作 load data MySQL load data 语句能快速将一个文本文件的内容导入到对应的数据库表中(一般文本的一…

DeiT-LT:印度科学院提出针对长尾数据的`DeiT`升级模型 | CVPR 2024

DeiT-LT为ViT在长尾数据集上的应用,通过蒸馏DIST标记引入CNN知识,以及使用分布外图像并重新加权蒸馏损失来增强对尾类的关注。此外,为了减轻过拟合,论文建议用经过SAM训练的CNN教师进行蒸馏,促使所有ViT块中DIST标记学习低秩泛化特征。经过DeiT-LT的训练方案,DIST标记成为…