眼泪滑过所有的梦
眼泪滑过所有的梦
全部文章
分类
抽象类(1)
ArrayList(1)
Docker(7)
echarts(1)
finally(1)
JAVA(27)
java8(3)
JAVAEE(3)
JAVA面试题(63)
JSON(1)
jvm(8)
K8S(12)
leetcode(2)
Linux(1)
Object(1)
rabbitmq(2)
Read uncommitted(1)
Redis(1)
sleep(1)
SpringBoot实践(15)
sql注入(1)
String(1)
Tomcat(1)
内存泄露(1)
前端(2)
合并有序链表(1)
多线程(14)
多线程与并发(2)
学生发展数据综合评价与分析系统(5)
布隆过滤器(1)
感悟(1)
操作系统(1)
数据库(6)
数据结构(1)
日常学习笔记(1)
未归档(38)
生活经历(2)
程序人生(1)
程序计数器(1)
索引(1)
脏读(1)
蓝绿部署(1)
计算机网络(2)
论文或报告(1)
设计模式(3)
集合(1)
归档
标签
去牛客网
登录
/
注册
阳阳的博客
热爱技术,享受生活
全部文章
(共243篇)
【数据库】binlog、redo log、undo log扫盲
一、什么是binlog binlog其实在日常的开发中是听得很多的,因为很多时候数据的更新就依赖着binlog。 举个很简单的例子:我们的数据是保存在数据库里边的嘛,现在我们对某个商品的某个字段的内容改了(数据库变更),而用户检索的出来数据是走搜索引擎的。为了让用户能搜到最新的数据,我们...
log
2020-06-15
0
525
ConcurrentHashMap原理
这篇文章,我打算从以下几个方面来讲。 1)多线程下的 HashMap 有什么问题? 2)怎样保证线程安全,为什么选用 ConcurrentHashMap? 3)ConcurrentHashMap 1.7 源码解析 底层存储结构 常用变量...
2020-06-15
0
1052
【设计模式】代理模式
一、前言 Spring中的AOP思想就是对代理模式的经典运用,下面先讲讲代理模式的核心思想,以静态代理为例。 二、示例 下面有这样一个例子,委托人在遭遇利益受损的时候,可以委托律师帮忙打官司。 先定义一个描述行为的接口: package c...
代理模式
2020-06-15
0
1181
【HashMap】为什么长度总是2的整数次方
前言 开门见山,HashMap这样做有两点原因 提升计算效率,更快算出元素的位置 减少哈希碰撞,使得元素分布均匀 提升计算效率 我们先看put方法的细节: public V put(K key, V valu...
hashmap
2020-06-15
0
850
【多线程】LongAdder实现原理
前言 AtomicInteger、AtomicLong使用非阻塞的CAS算法原子性地更新某一个变量,比synchronized这些阻塞算法拥有更好的性能,但是在高并发情况下,大量线程同时去更新一个变量,由于同一时间只有一个线程能够成功,绝大部分的线程在尝试更新失败后,会通过自旋的方式再次进行尝...
2020-05-25
0
797
【多线程】说说线程池
前言 线程池内部是多个线程的集合,在创建初期,线程池会创建出多个空闲的线程,当有一个任务需要执行时,线程池会选择出一个线程去执行它,执行结束后,该线程不会被销毁,而是可以继续复用。 使用线程池可以大大减少线程频繁创建与销毁的开销,降低了系统资源的消耗。当任务来临时,直接复用之前的线程,而...
2020-05-25
0
809
【多线程】Semaphore实现原理
前言 Semaphore,信号量,一般用于控制同时访问资源的线程数量。可以认为Synchronized代表的是一把锁,那么Semaphore就是多把锁。 常用方法 public class Semaphore implements java.io.Serializable { //...
2020-05-25
0
714
【多线程】CyclicBarrier实现原理
前言 CyclicBarrier,字面意思“循环屏障”,用于多个线程一起到达屏障点后,多个线程再一起接着运行的情况。例如,线程1和线程2一起运行,线程1运行到屏障点a时,将会被阻塞,等到线程2运行到屏障点a后,线程1和线程2才可以打破屏障,接着运行。如果有屏障点b,则他们需要像打破屏障a一样打...
2020-05-25
0
611
【多线程】CountDownLatch实现原理
前言 CountDownLatch是多线程中一个比较重要的概念,它可以使得一个或多个线程等待其他线程执行完毕之后再执行。它内部有一个计数器和一个阻塞队列,每当一个线程调用countDown()方法后,计数器的值减少1。当计数器的值不为0时,调用await()方法的线程将会被加入到阻塞队列,一直...
CountDownLatch
2020-05-25
0
840
【多线程】浅探CAS实现原理
前言 CAS,全称是Compare And Swap,即比较并交换,是一种乐观锁的实现。 悲观锁与乐观锁 悲观锁 总是假设最坏的情况,线程a每次去获取或更新数据的时候,都会觉得别的线程也正在修改这个数据,为了避免自己的更新操作丢失,线程a会尝试获取此数据的锁,线程a获取到之...
cas
2020-05-25
0
566
首页
上一页
1
2
3
4
5
6
7
8
9
10
下一页
末页