- 博客(101)
- 收藏
- 关注
原创 解锁Java并发编程:深入synchronized关键字
如果线程仍然活着,又有偏向锁的栈会被执行,遍历偏向对象的锁记录,栈中的锁记录和对象头的 Mark Word 要么重新偏向于其他线程,要么恢复到无锁或者标记对象不适合作为偏向锁,最后唤醒暂停的线程。偏向锁的撤销,需要等待安全点(在这个时间点上没有正在执行的字节码),它首先暂停拥有偏向锁的线程,然后检查持有偏向锁的线程是或否或者。偏向锁使用了一种等到竞争才释放锁的机制,所以当其他线程尝试竞争偏向锁,时,持有偏向锁的线程才会释放锁。如果没有设置,则使用 CAS 竞争锁。
2025-02-13 17:41:33
786
原创 解密银行家算法:操作系统资源管理的秘密武器
银行家算法是操作系统领域中用于避免死锁的经典算法其核心思想是通过模拟资源分配的过程,系统在进行资源分配之前,应先计算此次分分配资源的安全性,若分配不会导致系统进入不安全状态,则分配,否则等待实现银行家算法,系统必须设置若干数据结构int M,N;//总进程数、资源种类//默认各种资源总数目为 10 种// M 个进程对 N 类资源最大资源需求量//系统可用资源数// M 个进程已经得到 N 类资源的资源量//进程安全序列。
2025-02-11 19:18:35
815
原创 揭秘操作系统:任务调度算法的奥秘
FCFS 调度算法时一种简单实现的调度算法,公平性较好但在实际应用中需要注意长作业的等待时间较长的问题短作业有限调度算法核心思想是优先执行时间较短的作业短作业指的是估计执行时间短的作业,也可以理解为剩余执行时间短的作业高响应比优先调度算法(High Response Ratio Next,简称 HRRN) 是一种动态优先级的进程调度算法,其核心思想是根据作业的相应比来确定执行顺。
2025-02-11 15:34:00
939
原创 Docker深度解析:部署 SpringBoot 项目
编写 Dockerfile 文件: 将 dockerfile 文件打包成镜像文件: 运行该镜像: 后端部署: 修改后端端口 ip,打包项目: 创建文件夹部署需要的文件,将打包好的 jar 包放入此文件夹编写 Dockerfile 文件: 将 dockerfile 打包成镜像文件: 运行该镜像文件: 还需启动 mysql 和 redis:访问服务即可: 第二种方式:通过 compose 编排容器自动部署删除所有
2025-02-05 16:33:21
901
原创 Docker深度解析:掌握容器技术的核心秘密
仓库是 Docker 镜像的存储和分享平台镜像是包含应用程序及其运行环境的只读文件系统容器是镜像的可运行的实例,它在隔离的环境中运行应用程序。
2025-02-04 20:50:50
1019
原创 MyBatis-Plus速成指南:条件构造器和常用接口
在真正开发过程中,组装条件是常见的功能,而这些条件来源于用户输入,是可选的因此我们在组装这些条件时,必须先判断用户是否选择了这些条件,若选择则需要组装这些条件,若没有选择一定不能组装,以免影响 SQL 执行的结果。
2025-02-04 17:22:30
391
原创 MyBatis-Plus速成指南:常用注解
经过以上的测试,MyBatis-Plus 在实现 CURD 时,会默认将 id 作为主键列,并在插入数据时,默认基于雪花算法的策略生成的 id值描述IdType.ASSIGN_ID(默认)基于雪花算法的策略生成的数据 id,与数据库 id 是否设置自增无关使用数据库的自增策略,注意,该类型请确保数据库设置了 id 自增,否则无效。
2025-02-04 17:09:49
991
原创 MyBatis-Plus速成指南:简化你的数据库操作流程
MyBatis-Plus 是一个 MyBatis 的增强工具,在 MyBatis 的基础上只做增强不做改变,为简化开发、提高效率而生。MyBatsi-Plus 提供了通用的 Mapper 和 Service,可以不编写任何 SQL 语句的前提下,快速的实现单表的增删改查(CURD),批量逻辑删除,分页等操作。只要把 MyBatis-Plus 的特性优秀插件,以及多数据源的配置进行详细讲解。
2025-02-04 15:56:23
720
原创 RabbitMQ深度探索:SpringBoot 整合 RabbitMQ
【代码】RabbitMQ深度探索:SpringBoot 整合 RabbitMQ。
2025-02-04 11:43:49
1190
原创 RabbitMQ深度探索:从安装配置到高级应用的全面解析
RabbitMQ 是实现了高级消息队列(AMQP) 的开源消息代理软件(亦称面向消息的中间件),RabbitMQ 服务器是用 Erlang 语言编写的RabbitMQ 官网。
2025-02-04 11:02:48
446
原创 秒懂Redis:持久化与主从复制
通过 RDB 方式实现持久化,一旦 Rdis 异常退出,就会丢失最后一次快照以后更改的所有数据。这就需要开发者根据具体的应用场合,通过组合设置自动快照条件的方式来将可能发生的数据损失控制能够接受的范围。
2025-02-03 21:34:10
613
原创 秒懂Redis:set 数据类型
在集合类型的基础上,有序集合类型为集合中的每个元素一个分数这使得我们不仅可以完成插入、删除和判断元素是否存在集合中还能够获得分数最高或最低的前 N 个元素获取指定范围内的元素与分数有关的操作有序集合和列表类型有类似点:二者都是有序的二者都可以获得某一范围的元素二者区别:列表类型是通过链表实现的,获取靠近两端的数据速度极快,而当元素增多后,访问中间数据的速度会变慢有序集合类型使用散列列表实现,所有即使读取位于中间部分的数据也很快。
2025-02-03 20:56:30
938
原创 秒懂Redis:list 数据类型
list 可以存储一个有序的字符串列表,常用的操作是向列表两端添加元素或者获得列表的某一片段列表类型内部是使用双向链表实现的,所以向列表两端添加元素的时间复杂度为 O(1),获取数据越接近两端的元素速度就越快即使有上千万条数据,获取头部或尾部的 10 条记录也是极快的。
2025-02-03 18:22:27
223
原创 秒懂Redis:String 数据类型
redis 中没有使用 C 语言的字符串表示,而是自定义一个数据结构叫SDS即简单动态字符串C 语言对字符串的存储是使用字符数组,遇到 '\0' 字符认为字符串结束,redis 的字符串可以存储任何类型的数据,因为任何类型数据都可以表示成二进制,sds 结构中的 charbuf[] 就是存储了二进制数据二进制安全:存入什么数据取出的还是什么数据redis 中的 sbs 不像 C 语言处理字符串那样遇到 '\0' 字符认为结束,sbs 不会对存储的二进制数据进行处理,存入什么数据取出还是什么数据。
2025-02-03 18:00:36
195
原创 秒懂Redis:安装 Redis
Redis 不仅是使用命令来操作,现在基本上主流的语言都有客户端支持,比如 Java、C、C#、C++、php、Node.js、Go 等在官方网站里有一些 Java 的客户端,有 Jedis、ZRedisson、Jredis、JDBC-Redis 等,其中官方推荐使用 Jedis 和 Redisson在企业中用的最多的就是 Jedis。
2025-02-03 17:24:15
842
原创 秒懂Redis:快速掌握NoSQL数据库核心概念
NoSQL 泛指关系型数据库,NoSQL 即 Not-Only SQL ,它可以作为关系型数据库的良好补充NoSQL 数据库的产生就是为了解决大规模数据集合多重种类带来的挑战,尤其是大数据应用难题。
2025-02-03 16:47:32
562
原创 Linux环境下的Java项目部署技巧:安装 Nginx
反向代理:时服务器端代理,只要用户访问服务器,都是反向代理,实现业务调用正向代理:是客户端代理,只要用户上网就使用正向代理,实现网络通信整个上网过程都是先正向后反向代理。
2025-02-03 15:30:10
914
原创 Maven全解析:Maven 进阶
正式开发,不同的项目组开发不同的工程。maven-dao 工程开发完毕,发布到私服 maven-service 从私服下载 dao公司在自己的局域网内部搭建自己的远程仓库服务器,成为私服。私服服务器既是公司内部的 maven 远程仓库,每个员工的电脑上安装 maven 软件并且连接私服服务器,员工将自己开发的项目打成 jar 包并发送到私服服务器,其他项目组从私服服务器下载所有依赖的构建(jar)
2025-02-02 21:27:27
1317
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人