ARTICLE DETAIL

资讯详情

深耕网站建设、视觉设计与SEO优化的一线实战洞察。

梳理一下Java中为保证线程安全提供了那些方案 - 浪矢

梳理一下Java中为保证线程安全提供了那些方案 - 浪矢

目录
  • 同步机制 加锁
    • synchronized 关键字
    • Lock 接口
  • 原子操作类
  • 并发安全的集合类
  • 线程局部变量
  • volatile关键字

同步机制 加锁

synchronized 关键字

对方法或代码块加锁(在JVM层面)
当我们使用synchronized时,Java虚拟机(JVM)会为每个被同步的对象维护一个锁(或称为监视器锁)。
这个锁有四种状态:从级别由低到高依次是:无锁、偏向锁,轻量级锁,重量级锁,用于控制多线程对共享资源的访问。

Lock 接口

java.util.concurrent.locks 包中提供了比 synchronized 更灵活的锁机制,例如 ReentrantLock,支持中断、超时以及公平锁等特性

原子操作类

Atomic包下的原子类:: AtomicInteger、AtomicLong、AtomicBoolean 等提供了线程安全的原子操作方法,避免了加锁带来的阻塞,通常使用CAS (Compare-And-Swap) 算法实现

并发安全的集合类

线程局部变量

volatile关键字

volatile 关键字用于保证变量的可见性,确保一个线程对变量的修改对其他线程是可见的,同时保证了变量的有序性,但它不能保证对变量的复合操作是原子性的。

返回列表