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:只要不包含并发对共享数据进行运算,基本没问题。
相关推荐
long31638 分钟前
java 工厂方法设计模式 FactoryMethod
java·开发语言·后端·设计模式
思通数据3 小时前
AI视频监控:重构安防行业智能化新生态
人工智能·安全·目标检测·机器学习·计算机视觉·重构·数据挖掘
萤丰信息3 小时前
智慧工地从工具叠加到全要素重构的核心引擎
java·大数据·人工智能·重构·智慧城市·智慧工地
BillKu4 小时前
Spring Boot 3中JWT密钥安全存储方案
spring boot·后端·安全
找不到、了5 小时前
Java设计模式之《原型模式》--深、浅copy
java·设计模式·原型模式
程序员岳焱6 小时前
Java 调用 Python 脚本:实现 HelloWorld
java·后端·python
etcix7 小时前
wrap cpp variant as dll for c to use
java·c语言·开发语言
Giser探索家7 小时前
低空智航平台技术架构深度解析:如何用AI +空域网格破解黑飞与安全管控难题
大数据·服务器·前端·数据库·人工智能·安全·架构
Jewel Q7 小时前
终端安全检测和防御技术
安全
我在北国不背锅7 小时前
基于Java的Markdown转Word工具(标题、段落、表格、Echarts图等)
java·word·echarts·markdown