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

推荐链接:

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

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

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

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

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

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

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

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

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

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

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

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

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

一、加锁

1、悲观锁

synchronized、Lock(ReentrantLock,ReadWriteLock)

2、乐观锁

CAS

Q:CAS真的无锁吗?

A:

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

C++层面:有锁,lock cmpexchg

二、不加锁

  1. ThreadLocal:让多个线程将共享资源copy到本地,没有多线程操作共享资源的问题
  2. volatile:只要不包含并发对共享数据进行运算,基本没问题。
相关推荐
程序员-Benothing2 分钟前
Linux安全加固指南:账号、权限、服务、审计基线
linux·运维·安全
凤凰院凶涛QAQ1 小时前
《Java版数据结构 & 集合类剖析》Map & Set & 反射:“从哈希碰撞到红黑树转换,反射帮你扒开 HashMap 的桶数组看个究竟”
java·数据结构·算法
H.莓飛1 小时前
【数据结构】排序_OJ题(一):计数、桶与排序后的处理
java·开发语言·数据结构
wangchunyu1142 小时前
JAVA AQS与Lock实现原理(含CAS)
java·开发语言·word
w_zero_one3 小时前
算法--模拟
java·数据结构·算法
Javatutouhouduan3 小时前
阿里1658页Java面试题总结(含答案)
java·高并发·java面试·java面试题·后端开发·java程序员·java八股文
秋天的怀念_David3 小时前
算法一千零一夜 · 第十三夜 幻方,武侠世界里的数学迷宫
java·程序人生·算法
专业程序开发源4 小时前
springboot欧缇蔓月子中心管理系统82697-计算机课程设计、毕业设计
java·spring boot·后端·python·spring·django·课程设计
秋天的怀念_David4 小时前
算法一千零一夜 · 第十四夜 幻方与奇妙的二进制
java·程序人生·算法
thefool1122664 小时前
网络编程^
java