Java——》如何保证线程的安全性

推荐链接:

总结------》【Java】

总结------》【Mysql】

总结------》【Redis】

总结------》【Kafka】

总结------》【Spring】

总结------》【SpringBoot】

总结------》【MyBatis、MyBatis-Plus】

总结------》【Linux】

总结------》【MongoDB】

总结------》【Elasticsearch】

Java------》如何保证线程的安全性

Q:如果存在临界(共享)资源,如何保证线程的安全性?

A:加锁,怎么做?不加锁,怎么做?

一、加锁

1、悲观锁

synchronizedLock(ReentrantLock,ReadWriteLock)

2、乐观锁

CAS

Q:CAS真的无锁吗?

A:

Java层面:没锁,基于Unsafe实现

C++层面:有锁,lock cmpexchg

二、不加锁

  1. ThreadLocal:让多个线程将共享资源copy到本地,没有多线程操作共享资源的问题
  2. volatile:只要不包含并发对共享数据进行运算,基本没问题。
相关推荐
萧瑟余晖18 小时前
Java深入解析篇三十六之分布式系统详解
java·开发语言·分布式
KaKa_大王18 小时前
关于秒杀项目的一些理解
java·学习
tomla18 小时前
使用Java VisualVM观察过期对象引用现象
java
M1A118 小时前
Spring Boot YAML 配置读取完全指南:从基础到微服务
java
古法安卓18 小时前
Android-SELinux 策略调试实战:从 AVC 日志到策略修复
android·java·android studio
todoitbo19 小时前
飞算JavaAI的多租户权限隔离实测
java·springboot·ai编程·java开发·飞算javaai·java代码生成
星空19 小时前
Springboot复习
java·spring boot·spring
Dicky-_-zhang19 小时前
大模型部署架构:从推理引擎到弹性扩缩容的工程实践
java·jvm
FHAI_FHZN19 小时前
峰火智能一键紧急报警柱解决方案,打造公共区域快速响应安全防护体系
安全
vHelios19 小时前
【电商项目】商品搜索开发复盘(1):根据需求拆解搜索接口的设计逻辑
java·微服务·es