JavaEE4(4/27)

news2024/11/23 23:48:23

目录

1.加锁

2.锁死和重入

3.线程安全的类

4.volatile


1.加锁

当两个线程同时对一个对象进行加锁的时候,会产生竞争

2.锁死和重入

如果一个线程对一个对象加了一次锁,在加一次出现死锁,就是不可重入,否则就是可重入

锁死:对同一个锁再加锁出现的死循环

实际上开发JVM的工程师对加两把锁出现的情况进行了优化,实现了可重复锁

可重复锁:当加第一把锁的时候,加锁成功,记录谁加的锁,加锁次数:1

第二次再加锁的时候,是个假加锁,只是把加锁次数自增1,后续解锁的时候把加锁次数-1,直到为0就真的解锁了

可重复锁:大大提高了开发效率(防止死锁),降低了运行效率,由于要记录谁加的锁和加锁的次数

死锁的原因:

1.互斥性:线程占据锁了之后,其他线程不能占据

2.不可抢占:线程占据锁了之后,其他线程不能抢夺

3.请求和保持:一个线程占据了多把锁之后,除非主动释放锁,否则这些锁一直存在

4.环形死锁问题

约定好加锁的顺序可以解决哲学家吃饭导致的环形死锁问题.

3.线程安全的类

Sting

StringBuffer

ConcurrentHashMap

String线程安全的原因是String是不可变对象,无法在多个线程中修改同一个String的值

不可变对象和常量,final关系

final表示三种不能被修改继承重写

加锁就会线程安全,剩余的大部分基本上都是不安全的类

 

4.volatile

作用是禁止编译器进行优化,保证内存可见性.

因为这个属性可能是不稳定的.

 cpu和内存之间还存在缓存(cache),比如说我台式电脑12400f的缓存时24M,因为cpu从内存取数据由于内存拖后腿,太慢了,所以cpu决定把内存里面的东西先放到缓存上,再让cpu读取数据.提高了cpu的速度,现在典型的cpu都是三级缓存

 

 volatile 只是保证内存可见性,并不保证原子性

只是处理一个大量线程读,一个线程写的情况

synchronized  保证原子性和内存可见性

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

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

相关文章

守正创新,核心业务系统助推财务公司数字化转型

为落实国资委加快建设世界一流财务管理体系,推进财务公司数字化转型工作要求,交流总结财务公司同业工作经验,由中国电子主办、中电金信承办的“新核心 新动能——财务公司数字化转型专题研讨会”在京召开。会上中电金信发布了财务公司核心业务…

马斯克们叫停 GPT-5,更像是场行为艺术

目录 01 联名信说了什么? 02 发起方是谁? 03 谁签署了联名信? 04 联名信有哪些问题?三巨头的另外两位 Sam Altman 的表态 其他值得关注的署名者 比如马斯克。 另一个位于前列的署名者是 Stability AI 的创始人 Emad Most…

(剪花布条、客似云来)笔试强训

博主简介:想进大厂的打工人博主主页:xyk:所属专栏: JavaEE初阶 两道编程题~~~ 目录 文章目录 一、[编程题]客似云来 二、[编程题]剪花布条 一、[编程题]客似云来 链接:客似云来__牛客网 来源:牛客网 NowCoder开了一家早餐店&am…

线性回归原理与使用

1 回归 预测年薪 0.5 * 工作年限 0.7 * 学历数值 回归的目的就是预测 数值型的目标值。 求解回归方程式 系数 (0.5 ,0.7)的过程就是 回归。 2 简单线性回归 样本特征只有一个的线性回归 ,称为简单线性回归。 举例…

想搞懂 API ,先了解这些技术

在学习 API 相关技术之前,我们需要理解什么是 API。API(Application Programming Interface,应用程序编程接口)是为了帮助不同的应用程序之间实现数据和功能交换而设计的一组软件接口。使用 API,开发者可以访问底层数据…

c# 数据保存为PDF(一) (spire pdf篇)

文章目录 前言了解 Spire使用Spire.PDF1 创建简单的PDF文档2 创建带有格式的PDF文档(使用Draw)头部信息页眉页脚测试数据完整的代码 3 创建带有格式的PDF文档(使用Gird)小结 先上一个效果图 前言 项目中需要将一些数据转存为PDF …

unity GI Shader 实现

之前分享了一篇对unity全局光照的解析,里面提到了一些东西,需要在Shader内实现,在这一篇补上。 要实现对全局GI的shader实现,我们可以通过对unity内置的Lit进行解析查看。 烘焙的方式有很多种,选择合适的方式烘焙和使…

python-使用Qchart总结4-绘制多层柱状图

1、上代码 import sysfrom PyQt5.QtChart import QChart, QChartView, QBarCategoryAxis, QValueAxis, QBarSeries, QBarSet from PyQt5.QtGui import QPainter, QColor from PyQt5.QtWidgets import QMainWindow, QApplicationfrom untitled import Ui_MainWindow #从生成好的…

财报解读:连续三年逆势增长的背后,欧派家居到底靠的是什么?

能在过去3年逆势增长的家居企业并不多,而欧派家居就是其中一个。4月25日,欧派家居发布2022年年度报告。据年报数据显示,2022年,欧派家居共实现营业收入224.80亿元,净利润约26.88亿元。 从2020年到2022年,欧…

设计模式——单例设计模式

目录 一、设计模式概述和分类 1.1 设计模式介绍 1.2 23种设计模式 二、创建型设计模式-单例模式 2.1 介绍 2.2 八种单例模式的创建方式 2.2.1 饿汉式(静态常量) 2.2.2 饿汉式(静态代码块) 2.2.3 懒汉式(线程不…

SSH客户端工具输入目标地址端口远程失败故障原因和解决方案

问题表现:SSH客户端工具输入目标地址端口远程失败时,出现ssh client 报 algorithm negotiation failed的异常信息。 使用SSH Secure Shell Client连接Linux服务器的SSH的时候有时会出现错误提示信息:ssh algorithm negotiation failed。这是…

基于DSP+FPGA+ADS1282支持32Bit高精度数据采集方案(三)系统性能测试

系统性能分析与测试 本章将首先对系统电路的噪声和温漂进行分析,而后对采集系统的性能进行 测试,并对测试数据进行分析。 5.1 高精度 AD 转换电路噪声和温漂分析 5.1.1 电阻噪声与温漂 1 、电阻的噪声 电阻是一种噪声源,其严重程度取…

与贵州公安面对面|欧科云链天眼中国行,他们都说“行”

4月28日,为期两天“链上天眼科技助警中国行贵州站”(以下简称:贵州站)迎来了尾声。 继首日亮相中共中央政法委员会机关报-法制日报社主办的“政法智能化建设技术装备及成果展巡展贵州站”,引发贵州省政法机关单位的广…

基于.Net开发的、支持多平台、多语言餐厅点餐系统

今天给大家推荐一套支持多平台、多语言版本的订单系统,适合餐厅、酒店等场景。 项目简介 这是基于.Net Framework开发的,支持手机、平板、PC等平台、多语言版本开源的点餐系统,非常适合餐厅、便利店、超市、酒店等,该系统基础功…

vue3+ts+vite自适应项目——搭建项目

系列文章目录 第一章:搭建项目 目录 系列文章目录 前言 一、搭建项目 二、安装sass 1.安装依赖 2.测试 三、引入element-plus 1.引入库 1.1 安装 2.2引入插件 2.3测试 2.自定义主题 四、实现自适应 1.安装 2.引入 总结 前言 本项目主要目的是熟练…

Web前端学习路线 Web前端面试题 Web前端简历及常用工具

文章目录: 一:web前端学习路线 二:web前端常用工具 手册 文档 教程 插件 组件 三:IT计算机web前端面试题和面试需知 一:web前端学习路线 web前端学习路线 二:web前端常用工具 手册 文档 教程 插件 组件 …

浙大数据结构第三周初识二叉树

03-树1 树的同构 (25分) 给定两棵树T1和T2。如果T1可以通过若干次左右孩子互换就变成T2,则我们称两棵树是“同构”的。例如图1给出的两棵树就是同构的,因为我们把其中一棵树的结点A、B、G的左右孩子互换后,就得到另外一棵树。而图2就不是同构…

[2023.4.28]知识体系脑图

整理下工作5年来的知识体系脑图:

Vulnhub:DerpNStink 1靶机

kali:192.168.111.111 靶机:192.168.111.130 信息收集 端口扫描 nmap -A -v -sV -T5 -p- --scripthttp-enum 192.168.111.130 通过nmap的http-enum脚本发现目标80端口存在wordpress,访问目标网站的wordpress被重定向到http://derpnstink.…

政务智能办体验升级、乳腺癌创新药加速研发,飞桨和文心大模型驱动应用智能涌现...

4月27日,百度“飞桨中国行”落地上海,围绕“如何运用深度学习平台大模型技术打造壁垒快速破局”主题,飞桨携手区域企业、高校院所、硬件厂商、开发者等生态伙伴共话 AI 技术新动向和产业升级新趋势,助力上海夯实具有国际影响力的人…