今天看啥  ›  专栏  ›  CSDN企业招聘

京东二面:Java中一共有 N 种实现锁的方式,你知道都有哪些吗?

CSDN企业招聘  · 公众号  ·  · 2024-09-11 09:00

文章预览

作者 | 码哥 来源 | 码哥跳动 首先,我们先来看下线程安全性的定义,为什么需要锁? 线程安全,即在多线程编程中,一个程序或者代码段在并发访问时,能够正确地保持其预期的行为和状态,而不会出现意外的错误或者不一致的结果。 而解决线程安全问题,主要分为两大类:1、无锁;2、有锁。 无锁的方式有: 局部变量; 对象加 final 为不可变对象; 使用 ThreadLocal 作为线程副本对象; CAS,Compare-And-Swap 即比较并交换,是 Java 十分常见的无锁实现方式。 小白:那有锁的方式呢,怎么通过加锁保证线程安全呢? 别急哈,下面听我给你一一道来。 Java 有哪些锁? 从加锁的策略看,分为隐式锁和显示锁。隐式锁通过 Synchronized 实现,显示锁通过 Lock 实现。 乐观锁:顾名思义,它是一种基于乐观的思想,认为读取的数据一般不会冲突,不会对其加锁,而 ………………………………

原文地址:访问原文地址
快照地址: 访问文章快照
总结与预览地址:访问总结与预览