自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 java学习体系技术栈

任何脱离细节的ppt架构师都是耍流氓,向上能运筹帷幄,向下能解决一线性能问题。业务越来越复杂,服务分层,微服务架构是架构升级的必由之路。从架构设计,到应用层调优,再深入了解底层原理。高并发,高可用,海量数据。

2023-07-11 11:20:07 94

原创 什么是AQS

AQS ( Abstract Queued Synchronizer )是一个抽象的队列同步器,通过维护一个共享资源状态( Volatile Int State )和一个先进先出( FIFO )的线程等待队列来实现一个多线程访问共享资源的同步框架。

2023-07-11 09:55:49 118

原创 mysql--MVCC

其实 MVCC 是通过 “三个” 隐藏字段 (事务id,回滚指针,删除标志) 加上undo log和可见性算法来实现的版本并发控制。

2023-06-20 15:52:14 556

原创 Java--多线程ReentrantReadWriteLock的用法和原理

在没有读写锁之前,假设使用普通的 ReentrantLock,那么虽然保证了线程安全,但是也浪费了一定的资源,因为如果多个读操作同时进行,其实并没有线程安全问题,可以允许让多个读操作并行,以便提高程序效率。但是写操作不是线程安全的,如果多个线程同时写,或者在写的同时进行读操作,便会造成线程安全问题。读写锁就解决了这样的问题,它设定了一套规则,既可以保证多个线程同时读的效率,同时又可以保证有写入操作时的线程安全。

2023-06-15 11:41:05 170

原创 java--多线程队列(Queue)、使用/教程/实例

包括:DelayQueue,ConcurrentLinkedQueue,BlockingQueue。

2023-06-15 11:19:00 2233

原创 java--多线程ThreadLocal的用法

保存之后,后边的业务操作就可以获取(Controller或者Service都可以,只要在一个请求中)。

2023-06-15 09:58:26 169 1

原创 java--线程池技术汇总

我们使用线程的时候就去创建一个线程,这样实现起来非常简便,但是就会有一个问题:如果并发的线程数量很多,并且每个线程都是执行一个时间很短的任务就结束了,这样频繁创建线程就会大大降低系统的效率,因为频繁创建线程和销毁线程需要时间。通常情况下,创建线程是需要一定的耗时的,设这个时间为T1,而连接后读/写服务的时间为T2,当T1>>T2时,我们就应当考虑一种策略或者机制来控制,使得服务对于第二种请求方式也能在较低的功耗下完成。在JDK5之前,我们必须手动实现自己的线程池,从JDK5开始,Java内置支持线程池。

2023-06-13 18:05:38 187 1

原创 面经--mysql--001

什么是死锁死锁是2+个线程在执行过程中, 因争夺资源而造成的相互等待的现象,若无外力作用,它们将无法推进下去。死锁产生的4个必要条件互斥条件指进程对所分配的资源进行排他性使用,即一段时间内某资源只有一个进程占用,其他的进程请求资源只能等待,直至被占有资源的进程得到释放。请求和保留条件指进程至少保持占用一个资源,但又提出新的资源请求,而该资源正被其他进程占用,此时请求进程阻塞,但对以获得的其他资源保持不放。不剥夺条件指进程已获得的资源,在未使用完之前,不能剥夺,只能使用完时由自己释放。环路等待条件。

2023-06-08 17:56:06 307 1

原创 面经---Java--01

起源JWT 主要用于用户登录鉴权,所以我们从最传统的 session 认证开始说起。session认证众所周知,http 协议本身是无状态的协议,那就意味着当有用户向系统使用账户名称和密码进行用户认证之后,下一次请求还要再一次用户认证才行。

2023-06-08 15:09:04 220 1

原创 面经之-卷起来

valatile:volatile 是一种关键字,用于告诉编译器和处理器,该变量的值可能在任何时候被修改,因此每次读取该变量的值都必须从内存中读取,而不是从寄存器或缓存中读取。这样可以保证多线程之间对该变量的访问是正确的。指令重排序是一种优化技术,处理器可以将指令重排以提高处理器的性能。然而,这种优化技术可能会导致代码的行为与期望的不一致。在单线程环境下,指令重排序是一个很好的优化技术。但是在多线程环境下,指令重排序可能会导致程序的行为出现问题,因为它可能会让线程读取到错误的变量值或执行错误的指令。

2023-06-06 11:52:36 155

原创 标准的研发流程

PRD评审:产品、业务方、设计、后端、前段、测试、业务或者是平台上下游。UED评审:设计、产品、业务方、后端、前段、测试、上下游。后端系分:后端、前段、测试、产品、上下游。前段系分:后端、前段、测试、产品、上下游。BRD评审:业务方、产品、技术一号。测试系分:前端、后端、测试。开发周期:前端、后端。联调周期:前段、后端。

2023-06-05 10:38:21 92 1

空空如也

空空如也

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

TA关注的人

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