归档

2024 年 07 月

消息队列(Message Queue)是一种应用程序之间传递数据和信息的通信方法。消息队列中的推拉模式(Push-Pull Model)是指消息的生产者(Producer)将消息发送到队列,然后消费者(Consumer)可以按照推(Push)或拉(Pull)的方式从队列中获取消息。 简单阐述 RocketMQ 推模式(Push Mode)…
在Java中, Lock 和 synchronized 是用于管理多线程环境中对资源的访问,以保证线程安全的两种机制。本文将介绍一下他们的基本原理以及代码中的实际用法示例。 简单介绍一下Lock 当谈到Java中的 Lock 机制,特别是如 ReentrantLock 这样的具体实现,我们可以从几个不同的层面深入理解其原理和工作方式。 Lock…
场景假设 A表(1000条数据)left join B表(1000条数据)。 嵌套循环(Nested-Loop Join) 极简概括:顾名思义多层循环叠加,由于MySQL条数数量有限,所用for循环而不用while,在MySQL中就是多层for循环。…
1. 为什么要有内存模型? 要想回答这个问题,需要先弄懂传统计算机硬件内存架构,如下图所示: 1.1. 硬件内存架构 (1)CPU 去过机房的同学都知道,一般在大型服务器上会配置多个CPU,每个CPU还会有多个核,这就意味着多个CPU或者多个核可以同时(并发)工作。如果使用Java 起了一个多线程的任务,很有可能每个 CPU…
前言 线程池是非常重要的工具,如果要成为一个好的工程师,还是得比较好地掌握这个知识,很多线上问题都是因为没有用好线程池导致的。 总览 下图是 java 线程池几个相关类的继承结构: 先简单说说这个继承结构,Executor 位于最顶层,也是最简单的,就一个 execute(Runnable runnable) 接口方法定义。 ExecutorService…
在当前的AI时代,API(应用程序编程接口)已经成为连接AI能力与传统程序的利器,帮助开发者快速集成AI功能。随着人工智能技术的飞速发展,各种AI模型和服务应运而生,包括自然语言处理、图像识别、语音合成等。API作为桥梁,使得这些强大的AI功能能够被轻松调用,极大地降低了技术门槛,助力开发者在短时间内实现复杂功能。…
BlockingQueue 开篇先介绍下 BlockingQueue 这个接口的规则,后面再看其实现。 首先,最基本的来说, BlockingQueue 是一个 先进先出 的队列(Queue),为什么说是阻塞(Blocking)的呢?是因为 BlockingQueue…
简介 用于记录执行时间超过指定值的 SQL 语句的详细信息,多用于调试和监控。 配置 因为开启会略微影响性能,所以默认没有开启,所以需要配置。 查看是否开启 show variables like '%slow%'; + | Variable_name | Value | + | slow_launch_time | 2 | |…
索引相关 类型隐式转换 大坑 **字段filed1是varchar类型,且加了索引,如果 where filed1 = 123; type 可能是all,因为123是数字类型,mysql内部会用函数做隐式转换,用了函数,索引就失效了。** 大数据深度分页,用主键 select field1,field2 from table limit…
上一页 下一页