自定义博客皮肤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)
  • 收藏
  • 关注

原创 深入理解ReentrantReadWriteLock

读锁加锁流程读操作线程,竞争读锁资源会竞争共享锁的资源拿到state判断state中的低16位是否为0如果不为0,代表写锁占用着资源如果有资源占用着写锁,但是不是当前线程,结束(写锁 - 读锁的降级)拿到state高16位的值公平锁:如果有人排队,直接去排队非公平锁:查看AQS的队列中,是否写线程在排队,如果有,就去排队CAS对state的高16位+1,成功,拿到读锁资源。

2024-09-07 13:44:43 777

原创 ConditionObject

像synchronized提供了wait和notify的方法实现线程在持有锁时,可以实现挂起,已唤醒的操作ReentrantLock也拥有这个功能。ReentrantLock提供了await和signal方法实现类似的wait和notify的功能想执行await或者是sinal就必须持有lock锁的资源。

2024-09-03 22:25:14 752

原创 Java锁总结,synchronized&ReentrantLock深入分析

AQS就是AbstractQueuedSynchronizer抽象类,AQS其实就是JUC包下的一个基类,JUC下的很多内容都是基于AQS实现了部分功能,比如ReentrantLock,ThreadPoolExecutor,阻塞队列,CountDownLatch,Semaphore,CyclicBarrier等等都是基于AQS实现首先AQS中提供了一个由volatile修饰,并且用CAS方式修饰的int类型的state变量。

2024-08-30 10:21:08 1509 1

原创 并发三大特性

可见性问题是基于CPU位置出现的,CPU处理速度非常快,相对CPU来说,去主内存获取数据这件事情太慢了,CPU提供了L1,L2,L3的三级缓存, 每次去主内存拿完数据后,就会存储到CPU的三级缓存,每次去三级缓存拿数据,效率肯定会提升这就来了问题,现在CPU都是多核,每个线程的工作内存(CPU三级缓存)都是独立的,会告知每个线程中做修改时,只改了自己的内存,没有及时的同步到主内存,导致数据不一致问题。可见性问题的代码逻辑。

2024-08-29 09:13:26 744

原创 线程的基础概念

什么是进程?进程是指运行中的程序。比如我们使用的钉钉,浏览器需要启动这个程序,操纵系统会给这个程序分配一定的资源(占用内存资源)什么是线程?线程是CPU调度的基本单位,每个线程执行的都是某一个进程的代码的某个片段举例子:房子与人比如现在有个100平的房子,这个方式可以看做是一个进程房子里面有人,人就可以看做成一个线程。人在房子中做一个事情,比如吃饭,学习,睡觉。这个就好像线程执行某个功能的代码。所谓进程就是线程的容器,需要线程利用进程中的一些资源。处理一个代码,指令。

2024-08-27 17:50:13 1515

原创 Netty与protobuf,线程池的使用

本文主要是介绍 Netty与protobuf,线程池的使用。主要是围绕一下几个问题进行介绍。使用Netty搭建一个服务器。使用Netty搭建一个客户端。客户端发送字符串,服务器端打印。了解google的protobuf工具库。客户端使用protobuf发送一个数据,包含两个字段:uid=10以内的随机,index=自增长整数。服务器解析出这个数据包并打印内容。客户端同时发送1000个包含上述两个字段的

2023-04-20 10:51:56 503

原创 Apache ShardingSphere

Apache ShardingSphere 是一款分布式的数据库生态系统,可以将任意的数据库转换为分布式数据库,并通过数据分片、弹性伸缩,加密等功能对原来数据进行增强官网:https://shardingsphere.apache.org/Apache ShardingSphere 设计哲学为 Database Plus,皆在异构结构数据库上层的标准和生态。他关注如何充分合理的利用数据库的计算和存储能力,而并非实现一个全新的数据库,他站在数据库的上层角度,关注他们之间的协作多于数据库自身。

2022-12-12 17:43:02 1945

原创 玩转 单例模式

单例模式(Singleton Pattern)是比较简单容易理解的设计模式之一,这种设计模式是属于创建型模式,这种设计模式涉及到一个单一的类型,该类负责自己创建自己的对象,同时确保只有一个对象被创建,这个类需要对外提供一个访问获取对象的方法,可以直接访问,不需要实例化该类的对象单例类只能有一个实例单例类必须自己创建自己的唯一实例单例类必须给给所有其他对象提供这一实例构造方法要私有化,不能提供外界访问单例模式实现的方式有多,本文就简单介绍在保证线程安全情况下常用的6种方式。......

2022-08-10 14:09:08 201

原创 Serializable 与 Externalizable序列化

Serializable 与 Externalizable序列化

2022-08-09 15:05:18 335

原创 EhCache 缓存 EhCache 整合SpringBoot

EhCache 缓存,单机缓存,SpringBoot整合EhCache缓存,cache注解使用

2022-08-05 15:54:48 1835

原创 Linux Crontab 定时任务

Linux Crontab 定时任务Linux 定时执行脚本

2022-07-27 14:50:32 649

原创 部门树形结构 全部查询

表结构CREATE TABLE `dept` ( `id` int(32) NOT NULL AUTO_INCREMENT, `dept_name` varchar(255) DEFAULT NULL, `pid` int(32) DEFAULT NULL, PRIMARY KEY (`id`)) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8mb4;数据INSERT INTO `dev_help`.`dept`(`id`,

2021-12-30 10:45:08 592

原创 SpringBoot 常用注解

SpringBoot 常用注解@SpringBootApplication 作用在启动类 Spring Boot的核心注解主要组成:@SpringBootConfiguration 组合了@Configuration 注解 实现类配置类 == xml@EnableAutoConfiguation 打开自动配置功能也可以关闭某个自动配置 关闭数据源的自动配置@SpringBootApplication(Exclude=DataSourceAutoConfiguration.claa)@Comp

2020-12-23 21:14:58 111

原创 有状态,无状态登录

1、把用户信息放入session session.setAttribute(“user”,user);把用户信息生成自描述信息,发送给客户端,客户端需要存储这个自描述 保存到cookie中。用户A、B、C,session.getAttribute(“user”);3、退出,session.remove(“user”);把用户的数据存储在服务端的session中。有状态登录: 服务端会存储登录用户的信息。每次请求,请求都要携带这个自描述信息。:服务端不存储用户的登录信息。...

2020-12-21 21:50:29 194

空空如也

空空如也

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

TA关注的人

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