JUC并发编程与源码分析学习笔记(二)

二十九、多线程锁之线程锁知识概述

说说Java“锁”事

从轻松的乐观锁和悲观锁开讲

通过8种情况演示锁运行案例,看看我们到底锁的是什么

公平锁和非公平锁

可重入锁(又名递归锁)

死锁及排查

写锁(独占锁)/读锁(共享锁)

自旋锁SpinLock

无锁->独占锁->读写锁->邮戳锁

无锁->偏向锁->轻量锁->重量锁

大厂面试题复盘

并发编程高级面试解析

一、Synchronized相关问题

1、Synchronized用过吗,其原理是什么?

2、你刚才提到获取对象的锁,这个“锁”到底是什么?如何确定对象的锁?

3、什么是可重入性,为什么说Synchronized是可重入锁?

4、JVM对Java的原生锁做了哪些优化?

5、为什么说Synchronized是非公平锁?

6、什么是锁消除和锁粗化?

7、为什么说Synchronized是一个悲观锁?乐观锁的实现原理又是什么?什么是CAS,它有

8、乐观锁一定就是好的吗?

二、可重入锁ReentrantLock及其他显示锁相关问题

1、跟Synchronized相比,可重入锁ReentrantLock其实现原理有什么不同?

2、那么请谈谈AQS框架是怎么回事儿?

3、请尽可能详尽地对比下Synchronized和ReentrantLock的异同。

4、ReentrantLock是如何实现可重入性的?

1、你怎么理解java多线程的?怎么处理并发?线程池有那几个核心参数?

2、Java加锁有哪几种锁?我先说了synchronized,刚讲到偏向锁,他就不让我讲了

3、简单说说lock

4、hashmap的实现原理?hash冲突怎么解决?为什么使用红黑树?

5、spring里面都使用了哪些设计模式?循环依赖怎么解决?

6、项目中哪个地方用了countdownlatch,怎么使用的?

三十、多线程锁之悲观锁和乐观锁介绍

悲观锁:认为自己在使用数据的时候一定有别的线程来修改数据,因此在获取数据的时候会先加锁,确保数据不会被别的线程修改

synchronized关键字和Lock的实现类都是悲观锁

相关推荐

  1. JUC并发编程分析学习笔记()

    2024-01-22 03:26:03       57 阅读
  2. JUC并发编程分析学习笔记(三)

    2024-01-22 03:26:03       52 阅读
  3. 并发编程之ReentrantLock分析

    2024-01-22 03:26:03       53 阅读
  4. juc并发线程学习笔记(一)

    2024-01-22 03:26:03       45 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-01-22 03:26:03       98 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-01-22 03:26:03       106 阅读
  3. 在Django里面运行非项目文件

    2024-01-22 03:26:03       87 阅读
  4. Python语言-面向对象

    2024-01-22 03:26:03       96 阅读

热门阅读

  1. Vue2:使用pubsub-js实现组件间通信

    2024-01-22 03:26:03       52 阅读
  2. Ubuntu防火墙管理

    2024-01-22 03:26:03       54 阅读
  3. GraphQL语法用于模式验证和代码生成的新方法

    2024-01-22 03:26:03       57 阅读
  4. 独孤思维:做副业,家人不理解怎么办?

    2024-01-22 03:26:03       51 阅读
  5. 开发安全之:System Information Leak: External

    2024-01-22 03:26:03       52 阅读
  6. 2024作息打卡和事件梳理

    2024-01-22 03:26:03       52 阅读