面试题
可乐Vayne
努力到无能为力,拼搏到感动自己
展开
-
[由零开始] 什么是缓存击穿,如何解决缓存击穿
题目标签学习时长:20分钟题目难度:中等知识点标签:缓存、BF题目描述什么是缓存击穿,如何解决缓存击穿题目解决缓存击穿缓存在某个时间点过期的时候,恰好在这个时间点对这个Key有大量的并发请求过来,这些请求发现缓存过期一般都会从后端DB加载数据并回设到缓存,这个时候大并发的请求可能会瞬间把后端DB压垮。解决缓存击穿解决方案一 当数据库和redis中都不存在key,在数据库返回null时,在redis中插入<key,null,expireTime>当key再次请求时,red原创 2020-09-10 14:29:02 · 1251 阅读 · 0 评论 -
[由零开始] 深入理解ReentrantLock原理
题目标签学习时长:20分钟题目难度:中等知识点标签:ReentrantLock题目描述深入理解ReentrantLock原理题目解决ReentrantLock是什么?ReentrantLock是个典型的独占模式AQS,同步状态为0时表示空闲。当有线程获取到空闲的同步状态时,它会将同步状态加1,将同步状态改为非空闲,于是其他线程挂起等待。在修改同步状态的同时,并记录下自己的线程,作为后续重入的依据,即一个线程持有某个对象的锁时,再次去获取这个对象的锁是可以成功的。如果是不可重入的锁的话,就会造原创 2020-09-10 14:22:09 · 136 阅读 · 0 评论 -
[由零开始]谈一谈并发CAS(Compare and Swap)实现
题目标签学习时长:20分钟题目难度:中等知识点标签:CAS题目描述谈一谈并发CAS(Compare and Swap)实现题目解决1. 什么是乐观锁与悲观锁?悲观锁总是假设最坏的情况,每次读取数据的时候都默认其他线程会更改数据,因此需要进行加锁操作,当其他线程想要访问数据时,都需要阻塞挂起。悲观锁的实现:传统的关系型数据库使用这种锁机制,比如行锁,表锁等,读锁,写锁等,都是在做操作之前先上锁;Java里面的同步synchronized关键字的实现。乐观锁乐观锁,其实就是一种思想原创 2020-09-10 14:20:39 · 185 阅读 · 0 评论 -
[由零开始] 让我们聊一聊Java并发之Synchronized
让我们聊一聊Java并发之Synchronized题目标签学习时长:20分钟题目难度:中等知识点标签:并发、Synchronized题目描述Java并发之Synchronized题目解决Synchronized简介线程安全是并发编程中的至关重要的,造成线程安全问题的主要原因:临界资源, 存在共享数据多线程共同操作共享数据而Java关键字synchronized,为多线程场景下防止临界资源访问冲突提供支持, 可以保证在同一时刻,只有一个线程可以执行某个方法或某个代码块操作共享数据。原创 2020-09-10 14:17:40 · 77 阅读 · 0 评论