自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(59)
  • 收藏
  • 关注

原创 HTTP及1.0、1.1、2.0区别

HTTP1.0、1.1、2.0对比

2023-01-04 23:13:48 714 1

原创 传输层之TCP和UDP

TCP与UDP

2023-01-04 20:17:37 326

原创 Redis中BIO、NIO、IO多路复用

Redis中BIO、NIO、以及IO多路复用

2022-12-14 17:04:41 737 1

原创 MySQL中SQL的执行流程

MySQL中SQL执行流程

2022-12-14 15:02:49 216

原创 Cookie、Session、Token比较

Cookie、Session、Token的比较

2022-12-12 17:30:49 453 1

原创 MyBatis的缓存机制

MyBatis的两级缓存机制

2022-12-12 16:52:55 446

原创 循环依赖的解决办法

Spring中循环依赖的解决办法

2022-12-09 14:16:45 636

原创 Spring中的设计模式(11种)

Spring中的11种常见设计模式

2022-12-08 19:38:16 448

原创 SpringBoot自动配置的原理-@SpringBootApplication

SpringBoot自动装配的原理

2022-12-08 19:07:34 499

原创 SpringMVC的执行流程

SpringMVC的执行流程(详细版)

2022-12-07 19:05:54 452

原创 Spring bean的生命周期

Springbean的生命周期(详细版)篇

2022-12-07 18:30:51 96

原创 Spring中事务失效的场景

Spring中事务失效的场景

2022-12-06 20:23:12 1392 2

原创 Redis面试篇

Redis面试题(超详细、高热度)

2022-12-02 22:03:07 421

原创 RabbitMQ面试篇

RabbitMQ篇

2022-12-02 21:55:09 1138

原创 SpringCloud面试篇

SpringCloud常见面试题

2022-12-02 21:52:12 135

原创 RabbitMQ-惰性队列

RabbitMQ-解决消息堆积及惰性队列

2022-12-02 20:32:13 664

原创 RabbitMQ-死信交换机&延迟队列

RabbitMQ-死信交换机及消息延迟消费的实现

2022-12-02 19:49:30 535

原创 RabbitMQ-消息可靠性

RabbitMQ-保证消息的可靠性

2022-12-02 16:14:07 141

原创 分布式事务及其解决方案

分布式事务及其解决方案

2022-12-01 16:37:40 117

原创 Seata中TC服务部署及微服务集成Seata

seata的部署与集成

2022-11-30 16:38:21 276

原创 Spring中的IOC、DI、AOP详解

Spring中的IOC、AOP、DI详解

2022-11-25 21:07:40 1562

原创 MySQL-InnoDB引擎

当我们在一个事务中,执行多个增删改的操作时,InnoDB引擎会先操作缓冲池中的数据,如果缓冲区没有对应的数据,会通过后台线程将磁盘中的数据加载出来,存放在缓冲区中,然后将缓冲池中的数据修改,修改后的数据页我们称为脏页。缓冲池 Buffer Pool,是主内存中的一个区域,里面可以缓存磁盘上经常操作的真实数据,在执行增删改查操作时,先操作缓冲池中的数据(若缓冲池没有数据,则从磁盘加载并缓存),然后再以一定频率刷新到磁盘,从而减少磁盘IO,加快处理速度。往磁盘文件中写入数据,由于是日志文件,所以都是顺序写的。

2022-10-28 18:43:31 177

原创 MySQL-锁

锁是计算机协调多个进程或线程并发访问某一资源的机制。在数据库中,除传统的计算资源(CPU、RAM、I/O)的争用以外,数据也是一种供许多用户共享的资源。如何保证数据并发访问的一致性、有效性是所有数据库必须解决的一个问题,锁冲突也是影响数据库并发访问性能的一个重要因素。从这个角度来说,锁对数据库而言显得尤其重要,也更加复杂。全局锁:锁定数据库中的所有表。表级锁:每次操作锁住整张表。行级锁:每次操作锁住对应的行数据。

2022-10-26 16:08:05 86

原创 MySQL-SQL优化

如果我们需要一次性往数据库表中插入多条记录,可以从以下三个方面进行优化。

2022-10-21 11:04:14 77

原创 MySQL-索引

索引结构描述B+Tree索引最常见的索引类型,大部分引擎都支持 B+ 树索引Hash索引底层数据结构使用哈希表实现的,只有精确匹配索引列的查询才有效,不支持范围查询R-tree(空间索引)空间索引是MyISAM引擎的一个特殊索引类型,主要用于地理空间数据类型,通常使用较少Full-text(全文索引)是一种通过建立倒排索引,快速匹配文档的方式。类似于Lucene,Solr,ES我们平常所说的索引,如果没有特别指明,都是指B+树结构组织的索引。

2022-10-19 20:56:02 101

原创 Session共享的解决方案

在这个分布式结构下,如果不用共享session的话,就会出现问题。当一个客户端发送一个请求(无session),通过nginx将第一次请求分发给服务器1,服务器判断无session,就让那个客户进行登录操作,并得到响应,此时客户端会存储一个来自服务器1响应的session,并存储在客户端。当客户端发送第二次请求的时候,此时本次请求已经携带了session(跳过登录),nginx却将请求分发给服务器2,因为服务器2中没有session,所以无法与客户端session进行对应。

2022-09-18 15:23:14 3215

原创 阻塞队列(BlockingQueue)

.初始化链表Dummy 节点用来占位,item 为 null当一个节点入队再来一个节点入队出队。

2022-09-08 20:35:08 430

原创 ConcurrentHashMap

调试工具使用 idea在 HashMap 源码 590 行加断点断点的条件如下,目的是让 HashMap 在扩容为 32 时,并且线程为 Thread-0 或 Thread-1 时停下来断点暂停方式选择 Thread,否则在调试 Thread-0 时,Thread-1 无法恢复运行运行代码,程序在预料的断点位置停了下来,输出接下来进入扩容流程调试在 HashMap 源码 594 行加断点。

2022-09-08 08:53:28 119

原创 线程安全集合类

遍历时如果发生了修改,对于非安全容器来讲,使用 fail-fast 机制也就是让遍历立刻失败,抛出。ConcurrentModificationException,不再继续遍历。

2022-08-31 14:28:12 181

原创 JUC-CyclicBarrier

它要做的事情是,让一组线程到达一个屏障(也可以叫同步点)时被阻塞,直到最后一个线程到达屏障时,屏障才会开门,所有被屏障拦截的线程才会继续运行。CyclicBarrier 与 CountDownLatch 的主要区别在于 CyclicBarrier 是可以重用的。行到某个需要“同步”的时刻调用 await() 方法进行等待,当等待的线程数满足『计数个数』时,继续执行。循环栅栏,用来进行线程协作,等待线程满足某个计数。构造时设置『计数个数』,每个线程执。CyclicBarrier 可以被比喻为『人满发车』...

2022-08-30 22:02:26 179

原创 JUC-CountDownLatch

用来进行线程同步协作,等待所有线程完成倒计时其中构造参数用来初始化等待计数值,await()用来等待计数归零,用来让计数减一。

2022-08-30 21:23:23 81

原创 JUC-Semaphore

Semaphore(信号量)是用来。它通过协调各个线程,以保证合理的使用公共资源。

2022-08-30 19:48:56 81

原创 JUC-读写锁

当读操作远远高于写操作时,这时候使用让可以并发,提高性能。类似于数据库中的 select …from … lock in share mode提供一个内部分别使用读锁保护数据的 read() 方法,写锁保护数据的 write() 方法测试可以并发输出结果,从这里可以看到 Thread-0 锁定期间,Thread-1 的读操作不受影响测试相互阻塞......也是相互阻塞的,这里就不测试了。...

2022-08-29 20:54:33 175

原创 JUC-AQS

/独占锁 同步器类 class MySync extends AbstractQueuedSynchronizer {//加上了锁,并设置 owner 为当前线程 setExclusiveOwnerThread(Thread . currentThread());} @Override //是否持有独占锁 protected boolean isHeldExclusively() {} }

2022-08-24 20:32:36 58

原创 JUC-线程池

/1.任务队列 private Deque < T > queue = new ArrayDeque < >();//2.锁 private ReentrantLock lock = new ReentrantLock();//3.生产者条件变量 private Condition fullWaitSet = lock . newCondition();//4.消费者条件变量 private Condition emptyWaitSet = lock . newCondition();

2022-08-24 18:46:19 66

原创 异步模式之工作线程

让有限的工作线程(Worker Thread)来轮流异步处理无限多的任务。也可以将其归类为分工模式,它的典型实现就是线程池,也体现了经典设计模式中的享元模式。例如,海底捞的服务员(线程),轮流处理每位客人的点餐(任务),如果为每位客人都配一名专属的服务员,那么成本就太高了(对比另一种多线程设计模式:Thread-Per-Message)注意,不同任务类型应该使用不同的线程池,这样能够避免饥饿,并能提升效率。

2022-08-23 20:06:38 71

原创 共享模型之不可变

结果发现也没有,构造新字符串对象时,会生成新的 char[] value,对内容进行复制。在 web 阶段学习时,设计 Servlet 时为了保证其线程安全,都会有这样的建议,不要为 Servlet 设置成员变量,这种没有任何成员变量的类是线程安全的。发现final变量的赋值也会通过putfield指令来完成,同样在这条指令之后也会加入写屏障,保证在其他线程读到它的值时不会出现为0的情况。String 类也是不可变的,以它为例,说明一下不可变设计的要素。不可变对象,实际是另一种避免竞争的方式。

2022-08-19 10:27:20 56

原创 同步模式之顺序控制

比如,必须先2后1打印。

2022-08-18 20:55:50 78

原创 ReentrantLock

相对于 synchronized 它具备以下特点与synchronized一样,都支持可重入基本语法。

2022-08-18 15:02:58 219

原创 JUC下的原子类(Atomic)

Unsafe 对象提供了非常底层的,操作内存、线程的方法,Unsafe 对象不能直接调用,只能通过反射获得} }

2022-08-18 10:32:35 177

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除