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