- 博客(22)
- 收藏
- 关注
原创 6、ThreadLocal 详解
JVM 利用设置 ThreadLocalMap 的 Key 为弱引用,来避免内存泄露。JVM 利用调用 remove、get、set 方法的时候,回收弱引用。当 ThreadLocal 存储很多 Key 为 null 的 Entry 的时候,而不再去调用 remove、get、set 方法,那么将导致内存泄漏。使用线程池+ ThreadLocal 时要小心,因为这种情况下,线程是一直在不断的重复运行的,从而也就造成了 value 可能造成累积的情况。
2023-07-08 10:28:05 185
原创 5、JMM和并发三大特性
在JSR-133之前的旧Java内存模型中,虽然不允许volatile变量之间重排序,但旧的Java。64位的long型和double型变量,只要它是volatile变量,对该变量的读/写就具有原子性。变量与普通变量的重排序,确保volatile的写-读和锁的释放-获取具有相同的内存语义。器指令进行重排序,使机器指令能更符合CPU的执行特性,最大限度的发挥机器性能。的结果相等,那么指令的执行顺序可以与代码顺序不一致,此过程叫指令的重排序。思考:下面的Java程序中x和y的最终结果是什么?
2023-07-02 20:07:30 158
原创 3、深入学习 Java 的线程
为什么用户线程又被称为协程呢?我们知道,内核线程的切换开销是来自于保护和恢复现场的成本, 那如果改为采用用户线程, 这部分开销就能够省略掉吗?答案还是“不能”。但是,一旦把保护、恢复现场及调度的工作从操作系统交到程序员手上,则可以通过很多手段来缩减这些开销。由于最初多数的用户线程是被设计成协同式调度(Cooperative Scheduling)的,所以它有了一个别名——“协程”(Coroutine) 完整地做调用栈的保护、恢。
2023-07-01 16:17:14 96
原创 1、多线程编程的基本概念和优势
在正式学习 Java 的并发编程之前,还有几个并发编程的基础概念我们需要熟悉和学习。思考:上面例子中为什么多线程对共享变量的操作存在可见性问题?
2023-07-01 16:00:01 124
原创 idea下载安装
点击 DownLoad,进入下载页面进入下载页面后,选择自己想下载对应系统版本的idea,我下载的是windows64,版本为 2023.1.3。
2023-07-01 13:35:24 876
原创 13、springBoot + mysql + redis + redission + ddd四层架构 项目实战
缓存实战:redis 缓存用户需要解决的问题: 1》、使用Redis作为分布式缓存层,减轻后端数据库的负载。 2》、使用Redis的缓存穿透(布隆过滤器):使用Redis的布隆过滤器数据结构,高效地判断元素是否存在于大规模数据集中。优化布隆过滤器的参数设置,如预期插入数量和误判率,以达到合理的性能和空间占用 3》、缓存击穿(冷热分离、随机过期时间、热数据重建并发、分布式锁) 4》、缓存雪崩 (高并发、高可用) 5》、缓存、mysql 双写不一致 :不推荐延时双删,因为性能影响太大,推
2023-06-22 09:17:43 917
原创 7、Redis Cluster集群运维与核心原理
Redis Cluster是Redis提供的一种分布式数据存储解决方案,旨在实现数据的水平分片和高可用性。它通过将数据分布在多个节点上,实现数据的分布式存储和负载均衡。
2023-06-22 00:03:20 156
原创 6、Redis哨兵高可用架构
Redis哨兵高可用架构是一种用于保障Redis服务高可用性的容错解决方案。它通过引入一组哨兵节点来监控Redis主节点和从节点的状态,并在主节点故障时自动进行故障转移。
2023-06-21 21:59:46 144
原创 5、Redis主从架构
Redis主从架构是一种常用的数据复制方案,旨在提供高可用性和扩展性。在主从架构中,一个节点(主节点)负责写入和读取数据,而其他节点(从节点)复制主节点的数据。通过使用Redis主从架构,可以构建具有高可用性和扩展性的系统。无论是在关键应用中保障数据的可靠性,还是为了应对高并发读取需求,Redis主从架构为用户提供了一种可靠的数据复制解决方案。
2023-06-21 21:34:11 268
原创 4、Redis持久化和备份
通过持久化和备份机制,Redis确保数据在服务器重启、断电或灾难恢复时的安全性。这使Redis成为关键应用和系统的首选解决方案,提供可靠、持久的数据存储和保护。无论是简单的数据存储还是大规模系统,Redis的持久化和备份功能都为用户提供了安心使用的保障。
2023-06-20 23:40:42 113
原创 3、Redis数据结构和基本操作
在本篇文章中,我们将深入探索Redis的主要数据结构,包括字符串、哈希、列表、集合和有序集合,并学习如何使用它们进行基本的数据操作。您将了解每种数据结构的特点、适用场景以及常见的操作方法。通过实际示例和代码演示,我们将引导您掌握Redis中字符串的读写、哈希的存取、列表的插入和删除、集合的交并补操作以及有序集合的排序和范围查询。Redis提供了多种数据结构,适用于不同的数据存储和操作需求
2023-06-20 22:59:13 118
原创 2、Redis的单线程和高性能
Redis以其单线程和高性能的特点而闻名。采用单线程的事件驱动模型,Redis通过避免多线程的锁竞争和上下文切换开销来提高系统性能。尽管是单线程的,但Redis能够通过非阻塞的I/O多路复用机制处理大量并发连接,快速响应客户端请求。通过内存存储、高效的数据结构和异步操作等优化,Redis成为处理高并发负载和实时数据需求的理想选择。作为缓存、实时统计、消息队列和会话管理等领域的关键组件,Redis的单线程高性能为应用程序提供了灵活、高效的数据存储和处理能力。
2023-06-19 23:07:11 151
原创 2021-03-11 idea 2018 Reimport 无效
idea 2018 在pom.xml 中添加依赖,但是项目中没有对应的jar?1、右键项目——》Maven——》 Reimport2、1 无效时,需要在idea 中对maven进行设置
2021-03-11 10:52:37 401
原创 2021-03-09 idea+springboot+eureka+feign+jsp项目
## idea2017+springboot+mysql + eureka + feign 项目实现 eureka-consumer 调用 eureka-privode ,返回user 信息一、搭建 eureka-server 服务注册器idea 创建springboot然后下一步,直到finish;创建好后的目录:pom.xml 中的依赖: <dependency> <groupId>org.springframework.cloud</group
2021-03-09 11:25:27 551 1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人