自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(14)
  • 资源 (2)
  • 收藏
  • 关注

原创 synchronized锁升级过程示意图

2024-10-18 15:31:32 94

原创 SPI源码解读

是JDK内置的一种 服务提供发现机制 ,可以用来启用框架扩展和替换组件,主要是被框架的开发人员使用,比如java.sql.Driver接口, 可以针对同一接口做出不同的实现,MySQL和PostgreSQL都有不同的实现提供给用户,而Java的SPI机制可以为某个接口寻找服务实现。next 方法实现如下。

2024-10-18 15:20:14 288

原创 Seata 搭建 (AT模式)

config 将 nacos 作为 seata-server 配置中心, 从nacos读取配置参数,需要提前创建好namespace。registry 将 seata-server 服务主动注册到 nacos, 服务名称为application配置项。解压seata-server, 修改./conf/registry.conf。我们需要通过执行脚本,将config.txt配置加载到nacos配置中心。,将script目录拷贝到seata-server服务中。打开nacos,可以看到配置已加载。

2024-10-18 14:55:42 415

原创 Sentinel 快速入门

如果这个时候其它的机器也处在一个边缘状态的时候,这个增加的流量就会导致这台机器也崩溃,最后导致整个集群不可用。使用nacos达到sentinel 规则持久化和动态刷新,当然这是nacos到sentinel单项配置,如果想要在sentinel 控制台添加流控规则并实时同步到nacos ,需要修改sentinel控制台源码,修改打包后即可实现双向同步。由于调用关系的复杂性,如果调用链路中的某个资源出现不稳定,最终会导致请求发生堆积,所以降低调用链路中的不稳定资源也是Sentinel的使命。可以看到服务降级了。

2024-10-18 14:53:51 1692

原创 AQS源码解析——BlockingQueue阻塞队列篇

提供了阻塞操作,意味着当队列为空时,尝试获取元素的操作会被阻塞,直到有元素可用;当队列已满时,尝试放入元素的操作会被阻塞,直到有空间可用。是Java juc包的一部分,它是一个支持阻塞操作的队列。可以实现生产者-消费者模式,在队列未空或队列已满是阻塞线程,从而实现线程之间的同步和协作。这个方法会将node节点插入到CLH上,如果返回false说明当前node被其他线程在转移,获取下一个接着转移,直到整个队列转移完成。提供等待唤醒机制,实现线程之间的协调和同步。核心源码,源码很绕,需要多思考!

2024-10-18 14:37:36 2089

原创 AQS源码解析——ReentrantLock独占锁篇

CLH 队列(Craig, Landin, and Hagersten 队列)是一种用于实现自旋锁的队列数据结构,基于链表实现,旨在解决自旋锁中的一些缺点,比如对缓存一致性问题、内存系统的高度竞争等。而非公平锁,线程获取锁的顺序不确定,可能后来线程有限获取锁,排在队头的线程不一定能争抢到锁资源。实现公平的逻辑就是hasQueuedPredecessors方法,简单来说这个方法就是去找阻塞队列里有没有线程正在排队,如果有,那么不好意思,乖乖去排队吧。,则会启用公平策略,即等待时间最长的线程会优先获取锁。

2024-10-18 14:32:41 1402

原创 ThreadLocal原理解析

ThreadLocal为每个线程创建一个 ThreadLocalMap的缓存池,而ThreadLocal.ThreadLocalMap是Thread的成员变量,由ThreadLocal 来创建实例。由此可知,每个线程均维护自己的变量存储池,ThreadLocal通过线程变量隔离的方式,实现了共享变量数据安全问题。如果 entry 不实现对 threadlocal 的弱引用,那么只有当前线程销毁时,threadlocal对象才会被回收。的弱引用,但是map中还存储了变量的值。因此,建议在使用完毕后手动调用。

2024-10-18 14:30:48 413

原创 java多线程面试基础篇

1. 进程和线程的区别进程是调用系统资源的最小单位,线程是调度cpu的最小单位线程是进程的不同执行路劲进程占用内存空间,多进程程序比多线程程序健壮,但多进程比多线程程序耗损资源2. 线程的start和run方法的关系Thread通过调用start来创建并启动线程run方法只是执行线程的一个普通方法3. Thread和Runnable的关系Thread类实现自Runnable接口,切runnable没有start方法,需要Thread的start方法来实现由于类的单一继承原则,考虑到开发

2020-07-22 19:10:10 216

原创 Java多线程面试总结进阶篇

1.什么是synchronized获取对象锁的两种用法1. 同步代码块2. 同步非静态方法2. synchronized底层实现原理synchronized的四种状态无锁、偏向锁、轻量级锁、重量级锁偏向锁:减少同一线程获取锁的代价如果一个线程获得了锁,那么锁就进入偏向模式,此时Mark Word结果变为偏向锁模式,当该线程再次请求锁时,无需在做任何同步操作不适用于锁竞争比较激烈的多线程场合轻量级锁 轻量级锁是由偏向锁升级来的,偏向锁运行在一个线程进入同步块的情况下,当第二个线程

2020-07-22 19:08:49 269

原创 Redis面试知识点总结v1

1. Meincache 和 Redis的区别meincache: 支持简单数据类型 ,不支持持久化、不支持主从同步、不支持分片Redis: 支持丰富的数据类型, 支持数据持久化存储 支持分片 支持主从同步2. Redis为什么能这么快 完全基于内存,绝大多数请求是内存操作,执行效率高 数据结构简单,对数据的操作也简单 读取时不进行磁盘IO,采用了多路复用io阻塞机制 单线程没有线程上下文切换,且单线程也能处理高并发请求3.Redis的数据结构

2020-07-11 16:34:22 190

原创 MySQL面试知识点

MySQL面试详解

2020-07-10 20:23:20 134

原创 网络面试知识点总结一

1.GET请求和Post请求的区别​ a. http报文层面:GET请求将请求参数存放在url中以键值对的方式存在,而Post请求将请求参数存放在请求报文中及请求体中,相对于GET请求相对安全,但可以通过抓包获取到参数,所以也不是绝对安全的​ b. 数据库层面:GET请求符合幂等性和安全性,而Post请求则不然​ c. 其他方面:GET请求可以被缓存、存储,而Post请求则不行2.tcp3次握手及4次挥手​ 2.1 3次握手​ 作用:创建连接第一次握手:客户端向服务端发送请求,请求数据包会生成

2020-06-25 21:57:56 145

原创 MyCat根据数据库实现全局自增id

mycat生成全局idMycat:数据库中间件(分库分表)官网指南mycat运行需要JVM,所以先安装java环境,建议JDK1.8以上。数据库采用mysql5.7,或者8.0下载下载地址:https://github.com/MyCATApache/Mycat-download/tree/master/1.6-RELEASE环境配合linux: https://www.cnblogs.com/alexzhang92/p/10990904.htmlwindows:https://www.c

2020-06-11 21:30:57 278

原创 Java单链表实现约瑟夫环问题

Java–单向环形链表Josepfu(约瑟夫环) 问题 已知n个人(以编号1,2,3...n分别表示)围坐在一张圆桌周围。从编号为k的人开始报数,数到m的那个人出列;他的下一个人又从1开始报数,数到m的那个人又出列;依此规律重复下去,直到圆桌周围的人全部出列。 解决方案:用一个不带头的循环环形链表来处理Josepfu问题:先构成一个有n个节点的单循环链表,然后由K起点从1开始计数...

2019-12-08 21:32:38 586

java相关面试题(最新、最全)

资源包含最新面试题、大厂面试总结,内容全面实用性强,内容贯穿基础框架及微服务分布式模块、其中包含消息中间件的常问面试总结如:rabbitMQ、kafka等,以及数据库mysql、redis、mongodb等

2020-06-26

Josepfu.java

约瑟夫环是一个数学的应用问题:已知n个人(以编号1,2,3...n分别表示)围坐在一张圆桌周围。从编号为k的人开始报数,数到m的那个人出列;他的下一个人又从1开始报数,数到m的那个人又出列;依此规律重复下去,直到圆桌周围的人全部出列。通常解决这类问题时把编号从0~n-1,最后结果+1即为原问题的解。

2019-12-08

空空如也

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

TA关注的人

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