自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

ITwolf的博客

王者无止境

  • 博客(112)
  • 资源 (8)
  • 收藏
  • 关注

原创 揭秘 Mark Word 的存储结构

从上述代码中可以看到,在main()方法中定义了MarkWordExample对象实例,并且该对象含两个成员变量:id和name。在默认打印的对象内存布局信息中,Klass Pointer被压缩成4字节,如果不希望开启压缩指针功能,加一个jvm参数 --XX:UseCompressedOops。lock = new Object() 对象实例时,这个1ock实例最终的存储结构就对应下面这个的模型。一个Java对象被初始化之后会存储在堆内存中,那么这个对象在堆内存中存储了哪些信。对象在内存中的存储结构。

2024-10-24 10:39:40 354

原创 volatile 系列之指令重排序导致的可见性问题

什么是指令重排序呢?为了更加直观地理解,老司机还是通过一个案例来说明as-if-serial 语义

2023-12-13 21:16:05 167

原创 synchronized 同步锁的思考

synchronized同步锁的思考

2023-10-30 21:17:59 311

原创 Java 中的 synchronized 同步锁

导致线程安全问题的根本原因在于,存在多个线程同时操作一个共享资源,要想解决这个问题,就需要保证对共享资源访问的独占性,因此人们在Java中提供了synchronized关键字,我们称之为同步锁,它可以保证在同一时刻,只允许一个线程执行某个方法或代码块。synchronized同步锁具有互斥性,这相当于线程由并行执行变成串行执行,保证了线程的安全性,但是损失了性能。下面我们先来看一下synchronized的使用方法。

2023-10-30 02:30:00 389

原创 volatile 系列之如何解决可见性问题

volatile如何解决可见性问题

2023-10-29 22:28:17 219

原创 AQS 关于锁与队列的关系

AQS,队列与锁的关系,解决CAS恶性空白旋的有效方式之一是以空间换时间,较为常见的方案有两种:分散操作热点和使用队列削峰。JUC并发包使用的是队列削峰的方案解决CAS 的性能问题,并提供了一个基于双向队列的削峰基类、抽象基础类AbstractQueuedSynchronizer(抽象同步器类,简称为AQS)。

2023-10-29 21:38:32 160

原创 synchronized 的锁类型

之前的文章有讲过对同步锁的理解,实现同步锁的方式无非是多个线程抢占一个互斥变量,如果抢占成功则表示获得了锁,而没有获得锁的线程则阻塞等待,直到获得锁的线程释放锁如图所示,在Mark Word中,我们发现锁的类型有偏向锁、轻量级锁、重量级锁,那么其实,在JDK 1.6之前,synchronized只提供了重量级锁的机制,重量级锁的本质就是我们前面对于锁的认知,也就是没有获得锁的线程会通过park方法阻塞,接着被获得锁的线程唤醒后再次抢占锁,直到抢占成功。

2023-10-28 22:57:00 686

原创 互联网高端词汇

互联网高端词汇

2023-10-28 22:30:00 407

原创 CAS 机制的实现原理分析

在 synchronized 中很多地方都用到了CAS机制,它的叫法有很多,比如CompareAndSwap、CompareAndExchange、CompareAndSet,它是一个能够进行比较和替换的方法,这个方法能够在多线程环境下保证对一个共享变量进行修改时的原子性不变。

2023-10-27 22:39:51 422

原创 volatile 系列之实现原理

揭密volatile 实现原理,我们通过volatile解决了由于编译器的指令重排序导致的可见性问题,这意味着volatile 底层用到了内存屏障

2023-10-27 02:00:00 328

原创 CompletableFuture 实战

以一个商品查询为例,在微服务架构中,一个商品信息查询会涉及商品基本信息查询、商品评论查询、商品库存查询,每个查询都涉及不同的微服务的调用,如果使用异步编程的方式,应该如何实现呢?

2023-10-26 23:21:06 871

原创 锁升级的实现流程

当一个线程访问增加了synchronized关键字的代码块时,如果偏向锁是开启状态,则先尝试通过偏向锁来获得锁资源,这个过程仅仅通过CAS来完成。如果当前已经有其他线程获得了偏向锁,那么抢占锁资源的线程由于无法获得锁,所以会尝试升级到轻量级锁来进行锁资源抢占,轻量级锁就是通过多次CAS(也就是自旋锁)来完成的

2023-10-26 10:18:32 248

原创 Synchronized 关键字

在Java中,线程同步使用最多的方法是使用synchronized关键字。每个Java对象都隐含有一把锁,这里称为Java内置锁(或者对象锁、隐式锁)。使用synchronized(syncObject)调用相当于获取 syncObject 的内置锁,所以可以使用内置锁对临界区代码段进行排他性保护

2023-10-25 12:20:32 127

原创 多线程环境下的原子性问题

深入分析原子性问题的本质关于原子性问题的解决办法

2023-10-24 21:01:28 189

原创 分布式事务

分布式事务框架 Seata

2023-10-24 19:52:53 203

原创 AQS的核心成员

AQS核心成员的讲解

2023-10-24 13:50:06 217

原创 技术转管理,先来试试管理好项目

想要技术转型管理,首先从转变思维方式开始,从技术思维到管理思维,从关注细节到关注整体。然后去改变习惯,控制自己想写代码的冲动,多去从其他角度想办法。要管理好一个项目,关键是要管理好项目中的人和事。对客户要管理好期望,对项目成员则通过合理的流程规范更好的一起协作;对于项目中事的管理就是对软件开发过程的管理,选择好开发模式很重要,然后就是制定好计划,按照计划推进,过程中不断的调整,并且管理好项目中的风险。

2023-05-10 15:59:03 872

原创 准备Plan B 如何设计兜底方案

架构设计兜底方案

2022-12-15 17:37:06 579

原创 输出有价值的性能报告

性能报告

2022-11-30 15:08:04 752

原创 ThreadLocal 源码分析

ThreadLocal原理分析

2022-11-20 20:36:56 271

原创 ThreadLocal的底层原理

ThreadLocal底层原理简述

2022-11-18 23:29:05 495

原创 Innodb事务原理

1、Innodb收到一个update语句,会根据数据所在的页,会把该页缓存在Buffer pool中2、执行update语句,修改Buffer Pool的数据,内存的中的数据3、针对update语句生成RedoLog,并存入LogBuffer中4、继续生成undolog日志,这个用于事务回滚5、如果事务提交,那么则把Redolog对象进行持久化,后续其他机制将Buffer Pool所修改的数据持久化磁盘中6、如果事务回滚,则利用undolog日志进行回滚

2022-10-02 11:15:53 248

原创 Spring的事务机制

Spring的事务机制

2022-09-02 08:23:05 1214

原创 volatile关键字如何保证有序性和可见性

volatile关键字

2022-08-29 11:00:01 458

转载 关于微服务

微服务介绍

2022-08-23 15:50:31 468

原创 微服务网关 Spring Cloud Gateway

API网关的作用网关的本质及技术选型Spring Cloud Gateway 网关实战Spring Cloud Gateway 原理分析

2022-07-25 15:35:09 326

原创 优雅的 Controller 层代码

优雅的 Controller 层代码

2022-06-30 17:01:09 1244

原创 服务注册与发现(Nacos)

什么是Alibaba Nacos 服务注册与发现,配置中心?

2022-05-01 20:19:11 5276

原创 Spring Boot 手写一个 Starter

手写Starter组件

2022-04-26 18:51:22 845

原创 Spring Boot 自动装配的原理

在Spring Boot中,不得不说的一个点是自动装配,它是Starter的基础,也是Spring Boot的核心,那么什么叫自动装配呢?或者说什么叫装配呢?

2022-04-22 15:55:56 1716

原创 MultipartFile文件上传

MultipartFile文件上传

2022-03-27 21:32:09 5505

原创 Bean装配方式的升级

SpringBoot简化操作,开箱即用了解一下SpringBoot的相关Bean装配

2022-03-25 13:06:55 991

原创 Spring Ioc/DI 控制反转和依赖注入

Ioc(Inversion of Control)和DI(Dependency Injection)的全称分别是控制反转和依赖注入。如何理解这两个概念呢?

2022-03-23 17:33:22 988

原创 内置锁的核心原理之线程安全问题

i++自增线程不安全吗?你所理解的自增要怎么样才能安全呢?

2022-03-20 17:57:09 4054

原创 一份完整齐全的技术方案文档

技术方案文档模板,电商平台技术方案模板

2022-02-25 15:52:27 4800

原创 OkHttp的使用

OkHttp工具

2022-01-28 15:08:00 898

原创 SpringCloud关于l2cache缓存

SpringCloud、SpringBoot、l2cache缓存

2022-01-27 17:00:57 1691

原创 多线程原理和实战

java在高并发核心编程,线程的核心原理,实战

2021-12-01 23:37:03 253

原创 springcloud与xxl-job定时任务

springboot、springcloud、xxl-job定时任务

2021-11-16 20:50:30 1228

原创 SpringBoot SpringCloud MybatisPlus框架动态数据源(配置多个DB数据源)

分库分表的不要使用以下方法这里是普通的多数据源配置本方法是nacos的配置1 依赖<dependency> <groupId>com.baomidou</groupId> <artifactId>dynamic-datasource-spring-boot-starter</artifactId> <version>3.4.1</version></dependency>...

2021-10-11 15:25:17 608

DeepSeek+DeepResearch

DeepSeek+DeepResearch

2025-05-26

普通人如何抓住DeepSeek红利

普通人如何抓住DeepSeek红利

2025-05-26

DeepSeek赋能职场

DeepSeek赋能职场

2025-05-26

DeepSeek从入门到精通

DeepSeek:从入门到精通

2025-05-26

DeepSeek指导手册

DeepSeek从入门到精通,DeepSeek指导手册

2025-05-26

电商公司的SOP文档(代码审查+复盘+工作量评估+胜利会+故障处理+信息同步+脑爆会+任务分配+跨部门项目支持+故障告警响应)

1、复盘会-流程规范 2、工作量评估方法 3、公开CodeReview-流程规范 4、故障处理-流程规范 5、故障告警响应-流程规范 6、开发团队-跨模块开发流程标准 7、脑爆会-流程规范 8、任务分配方法 9、日常CodeReview 10、胜利会-流程规范 11、项目信息同步会 12、项目站会SOP

2022-03-23

高并发高可用mysql优化

关于mysql的索引,查询,机构等等一些优化提供宝贵经验,为您奉献最优质的mysql高并发经验,为实战mysqlL架构,MySQL高级特性,伸缩性与高可用性

2019-12-25

phpexcel.zip

php导入excel的实例,有两个方法导入excel并且读取excel数据,一个是直接读取excel现有,还有一个方法是上传之后再去读取excel内容

2019-05-31

商品规格(颜色,尺寸)

前端页面js,jq,html的商品规格的特效代码,添加修改需要对字符串和数组进行组装

2019-01-18

php+jq+js多图上传图片拖拽样式

虽然很多图片上传,自己捣鼓了一些多图上传资料,以便于单独拿到多图上传功能用于快速开发,谢谢

2018-12-14

php的事务回滚

运行环境,只需要在数据库增加表和代码里对于的几个字段,修改一下代码对应的数据库名和账号密码

2018-05-29

Nginx Web配置

主要用于Linux/Nginx的配置,服务器的管理和相关命令,以及介绍和相关操作

2017-12-08

高并发的抢购功能

主要提供解决方案和代码功能。运用了redis,innodb,事务处理。

2017-12-01

空空如也

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

TA关注的人

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