SpringForAll社区
首页
瞬间
文档
Spring Boot 3.5.x
Spring Boot 3.4.x
Spring AI 1.0.x
教程
Java 新特性
Spring Boot 1
Spring Boot 2
Spring Cloud
玩转 IntelliJ IDEA
工具
Spring Initializr
文章发布工具
开发者安装大全
关于
登录
菜单
首页
瞬间
文档
Spring Boot 3.5.x
Spring Boot 3.4.x
Spring AI 1.0.x
教程
Java 新特性
Spring Boot 1
Spring Boot 2
Spring Cloud
玩转 IntelliJ IDEA
工具
Spring Initializr
文章发布工具
开发者安装大全
关于
归档
2024 年 04 月
Java CAS 原理分析
2024-04-22
Java
#java
1.简介 CAS 全称是 compare and swap,是一种用于在多线程环境下实现同步功能的机制。CAS 操作包含三个操作数 — 内存位置、预期数值和新值。CAS 的实现逻辑是将内存位置处的数值与预期数值想比较,若相等,则将内存位置处的值替换为新值。若不相等,则不做任何操作。 在 Java 中,Java 并没有直接实现 CAS,CAS…
AbstractQueuedSynchronizer 原理分析 – Condition 实现原理
2024-04-22
Java
#java
1. 简介 Condition 是一个接口,AbstractQueuedSynchronizer 中的 ConditionObject 内部类实现了这个接口。 Condition 声明了一组 等待/通知 的方法,这些方法的功能与 Object 中的 wait/notify/notifyAll 等方法相似。这两者相同的地方在于,它们所提供的 等待/通知…
Java 重入锁 ReentrantLock 原理分析
2024-04-22
Java
#java
Java 重入锁 ReentrantLock 原理分析 1.简介 可重入锁 ReentrantLock 自 JDK 1.5 被引入,功能上与 synchronized 关键字类似。所谓的可重入是指,线程可对同一把锁进行重复加锁,而不会被阻塞住,这样可避免死锁的产生。ReentrantLock 的主要功能和 synchronized…
Java 线程同步组件 CountDownLatch 与 CyclicBarrier 原理分析
2024-04-22
Java
#java
1.简介 在分析完 AbstractQueuedSynchronizer (以下简称 AQS)和 ReentrantLock 的原理后,本文将分析 java.util.concurrent 包下的两个线程同步组件 CountDownLatch 和 CyclicBarrier 。这两个同步组件比较常用,也经常被放在一起对比。通过分析这两个同步组件,可使我们对…
系统设计面试:如何设计一个Twitter或微博
2024-04-19
架构运维
这期视频主要介绍了设计Twitter或类似新闻源系统的功能和非功能需求,以及一些架构概述和讨论点,包括推拉模型和混合模型、服务的无状态性、多数据中心分布、数据库副本和缓存策略、监控使用指标等。 00:00 设计Twitter或任何类型的新闻源系统时,我们需要考虑功能和非功能需求。 功能需求包括发布和检索动态、通知和分析等服务。…
系统设计面试:如何设计一个如微信或WhatsApp这样的消息系统
2024-04-18
架构运维
本视频是关于设计一个消息系统,如WhatsApp或WeChat,涵盖了功能要求和非功能要求,包括一对一聊天和群组聊天、媒体共享、推送通知和在线离线指示等。 视频还介绍了系统架构概述,包括网关、聊天服务、标识服务、服务发现、映射表和在用户状态上的心跳机制。 此外,讨论了其他相关话题,如端到端加密、媒体文件处理和滥用防御。 00:00…
WebSocket的工作原理
2024-04-17
架构运维
…
系统设计面试:Web爬虫的实现
2024-04-17
架构运维
WebCrawler是一种系统设计面试问题,用于系统atically浏览web以进行索引、数据挖掘和存档,需要考虑存储容量和架构选择。 系统架构包括种子URL、URL筛选器、HTML提取器和渲染器等模块,以及URL优先级队列和URL去重机制来实现优先级和礼貌性。 存储和缓存可以使用列式数据库、分布式文件系统或NoSQL数据库来处理大量数据。 00:01…
Flink 流处理程序编程模型
2024-04-15
Java
#java
#kafka
Apache Flink 是一个流处理框架,用于实时数据处理和流式计算。它可以处理大规模数据流,并提供低延迟和高吞吐量。Flink 支持各种数据源和接口,如 Kafka、HDFS、TCP 流等。它还提供了丰富的数据处理功能,如窗口操作、状态管理、事件时间语义等。Flink…
Java Bitmap 简介
2024-04-11
Java
#java
简介 Bitmap(位图)是一种简单且高效的数据结构,用于存储大量的布尔值(例如,集合中某个元素是否存在)。Bitmap通过将每个布尔值表示为一个位,从而实现了高效的内存使用和快速的查询性能。本文将详细介绍Bitmap的原理、应用场景和在Java中的使用方法。 Bitmap原理…
上一页
1 / 177
2 / 177
3 / 177
4 / 177
5 / 177
6 / 177
7 / 177
8 / 177
9 / 177
10 / 177
11 / 177
12 / 177
13 / 177
14 / 177
15 / 177
16 / 177
17 / 177
18 / 177
19 / 177
20 / 177
21 / 177
22 / 177
23 / 177
24 / 177
25 / 177
26 / 177
27 / 177
28 / 177
29 / 177
30 / 177
31 / 177
32 / 177
33 / 177
34 / 177
35 / 177
36 / 177
37 / 177
38 / 177
39 / 177
40 / 177
41 / 177
42 / 177
43 / 177
44 / 177
45 / 177
46 / 177
47 / 177
48 / 177
49 / 177
50 / 177
51 / 177
52 / 177
53 / 177
54 / 177
55 / 177
56 / 177
57 / 177
58 / 177
59 / 177
60 / 177
61 / 177
62 / 177
63 / 177
64 / 177
65 / 177
66 / 177
67 / 177
68 / 177
69 / 177
70 / 177
71 / 177
72 / 177
73 / 177
74 / 177
75 / 177
76 / 177
77 / 177
78 / 177
79 / 177
80 / 177
81 / 177
82 / 177
83 / 177
84 / 177
85 / 177
86 / 177
87 / 177
88 / 177
89 / 177
90 / 177
91 / 177
92 / 177
93 / 177
94 / 177
95 / 177
96 / 177
97 / 177
98 / 177
99 / 177
100 / 177
101 / 177
102 / 177
103 / 177
104 / 177
105 / 177
106 / 177
107 / 177
108 / 177
109 / 177
110 / 177
111 / 177
112 / 177
113 / 177
114 / 177
115 / 177
116 / 177
117 / 177
118 / 177
119 / 177
120 / 177
121 / 177
122 / 177
123 / 177
124 / 177
125 / 177
126 / 177
127 / 177
128 / 177
129 / 177
130 / 177
131 / 177
132 / 177
133 / 177
134 / 177
135 / 177
136 / 177
137 / 177
138 / 177
139 / 177
140 / 177
141 / 177
142 / 177
143 / 177
144 / 177
145 / 177
146 / 177
147 / 177
148 / 177
149 / 177
150 / 177
151 / 177
152 / 177
153 / 177
154 / 177
155 / 177
156 / 177
157 / 177
158 / 177
159 / 177
160 / 177
161 / 177
162 / 177
163 / 177
164 / 177
165 / 177
166 / 177
167 / 177
168 / 177
169 / 177
170 / 177
171 / 177
172 / 177
173 / 177
174 / 177
175 / 177
176 / 177
177 / 177
下一页