Fork me on GitHub

09 2024 档案

摘要:“IO 多路复用”是编程中常见的技术词汇,使用这种技术的框架有很多,如,Redis、Kafka、Netty、Nginx 中都用到了此技术。那问题来了,什么是 IO 多路复用?它的具体实现技术有哪些?这些技术之间有什么区别?今天我们就来简单的探讨一下。 1.什么是IO多路复用? IO 多路复用技术是一 阅读全文
posted @ 2024-09-26 16:08 磊哥|www.javacn.site 阅读(62) 评论(0) 推荐(0) 编辑
摘要:谈起“布隆过滤器”相信大家都不陌生,它也算日常面试中的常见面试题了。例如,当面试官在问到 Redis 模块的相关问题时,可能会问到缓存穿透(Redis 四大经典问题之一),而缓存穿透的经典解决方案之一,则是“布隆过滤器”。 但是,对于布隆过滤器是什么?以及布隆过滤器的实现原理?相信大部分同学都能回答 阅读全文
posted @ 2024-09-25 17:18 磊哥|www.javacn.site 阅读(62) 评论(0) 推荐(0) 编辑
摘要:分布式锁(Distributed Lock)是一种用于分布式系统中的同步机制,主要是为了防止分布式系统中,多个服务实例同时操作一个共享资源所带来的并发安全问题。 分布式锁确保在同一时间只有一个实例操作共享资源,从而保证了数据的安全性。 1.分布式锁实现方案 分布式锁的实现方案有多种,例如以下这几种: 阅读全文
posted @ 2024-09-24 16:34 磊哥|www.javacn.site 阅读(51) 评论(0) 推荐(0) 编辑
摘要:在 MySQL 中,GROUP BY 和 DISTINCT 都是用来处理查询结果中的重复数据,并且在官方的描述文档中也可以看出:在大多数情况下 DISTINCT 是特殊的 GROUP BY,如下图所示: 官方文档地址:https://dev.mysql.com/doc/refman/8.0/en/d 阅读全文
posted @ 2024-09-19 16:10 磊哥|www.javacn.site 阅读(246) 评论(0) 推荐(0) 编辑
摘要:今天有位同学问了磊哥一个问题,大概的意思是“单核服务器可以不加锁吗?”,我觉得很有意思,所以在这里就和各位探讨一下: 1. 问题答案 先说我的理解,单核服务器仍然需要加锁。 因为在单核服务器上也会有线程切换,如果不加锁,那么线程切换后,另一个线程就可以访问其他线程未操作完的共享变量,这就会导致操作的 阅读全文
posted @ 2024-09-18 09:05 磊哥|www.javacn.site 阅读(189) 评论(0) 推荐(1) 编辑
摘要:首先,这个问题考察的是你对线程池 execute 方法和 submit 方法的理解,在 Java 线程池的使用中,我们可以通过 execute 方法或 submit 方法给线程池添加任务,但如果线程池中的程序在执行时,遇到了未处理的异常会怎么呢?接下来我们一起来看。 1.execute方法 exec 阅读全文
posted @ 2024-09-13 15:20 磊哥|www.javacn.site 阅读(491) 评论(0) 推荐(0) 编辑
摘要:对于我们使用的线程池 ThreadPoolExecutor 来说,停止线程池的方法有以下两个: shutdown():优雅的关闭线程池,即不再接受新任务,但会等待已提交任务(包括正在执行的任务和在队列中等待的任务)执行完毕。等待所有任务都执行完毕后,线程池才会进入终止状态。 shutdownNow( 阅读全文
posted @ 2024-09-12 16:57 磊哥|www.javacn.site 阅读(504) 评论(0) 推荐(1) 编辑
摘要:任务编排(Task Orchestration)是指管理和控制多个任务的执行流程,确保它们按照预定的顺序正确执行。 1.为什么需要任务编排? 在复杂的业务场景中,任务间通常存在依赖关系,也就是某个任务会依赖另一个任务的执行结果,在这种情况下,我们需要通过任务编排,来确保任务按照正确的顺序进行执行。 阅读全文
posted @ 2024-09-09 15:13 磊哥|www.javacn.site 阅读(487) 评论(0) 推荐(1) 编辑
摘要:在 MySQL 中,limit X,Y 的查询中,X 值越大,那么查询速度也就越慢,例如以下示例: limit 0,10:查询时间大概在 20 毫秒左右。 limit 1000000,10:查询时间可能是 15 秒左右(1秒等于 1000 毫秒),甚至更长时间。 所以,可以看出,limit 中 X 阅读全文
posted @ 2024-09-05 19:54 磊哥|www.javacn.site 阅读(1242) 评论(3) 推荐(9) 编辑
摘要:Lambda 表达式是 Java 8 引入的一种简洁的表示匿名方法的方式,使用它可以用于替代某些匿名内部类对象,从而让程序更简洁,可读性更好。但 Lambda 表达式的底层是如何实现的呢?接下来我们一起来看。 1.未Lambda表达式 未使用 Lambda 表达式之前,我们创建一个线程,可以这样写: 阅读全文
posted @ 2024-09-04 17:25 磊哥|www.javacn.site 阅读(173) 评论(0) 推荐(0) 编辑
摘要:Java 是值传递还是引用传递?这是 Java 中比较基础的一道常见面试题,但对于这道问题的大部分答案都是错的,大部人会这样回答这个问题: 在 Java 中,如果传递的是基本数据类型,那么就是值传递;而如果传递的是对象或数组的话,那么就是引用传递。 然而,这个答案是错的! 定义描述 值传递和引用传递 阅读全文
posted @ 2024-09-04 15:18 磊哥|www.javacn.site 阅读(36) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示