<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[前端、移动端、后端源码级底层原理分享]]></title><description><![CDATA[前端、移动端、后端源码级底层原理分享]]></description><link>https://blog.csdn.net/yunkongbian2616</link><language>zh-cn</language><generator>https://blog.csdn.net/</generator><copyright><![CDATA[Copyright &copy; yunkongbian2616]]></copyright><item><title><![CDATA[5.Java面试题之线程池如何知道一个线程的任务已经执行完成？]]></title><link>https://blog.csdn.net/yunkongbian2616/article/details/141263979</link><guid>https://blog.csdn.net/yunkongbian2616/article/details/141263979</guid><author>yunkongbian2616</author><pubDate>Fri, 16 Aug 2024 16:47:43 +0800</pubDate><description><![CDATA[每个 Worker 在执行完一个任务后，会尝试从任务队列中获取下一个任务。在实际应用中，可能需要结合多种方法来准确跟踪任务的完成状态。当使用 Runnable 接口时，线程池通过 run() 方法的执行完成来判断任务是否结束。使用 Callable 接口时，线程池可以通过 Future 对象来判断任务是否完成。线程池通过多种机制来判断一个线程的任务是否已经执行完成。在这种情况下，当 run() 方法执行完毕，线程池就认为任务已经完成。可以定期检查线程池的活跃线程数来判断是否所有任务都已完成。]]></description><category></category></item><item><title><![CDATA[4.Java面试题之lock 和 synchronized 区别]]></title><link>https://blog.csdn.net/yunkongbian2616/article/details/141261516</link><guid>https://blog.csdn.net/yunkongbian2616/article/details/141261516</guid><author>yunkongbian2616</author><pubDate>Fri, 16 Aug 2024 15:41:28 +0800</pubDate><description><![CDATA[Lock 和 synchronized 都是 Java 中用于实现线程同步的机制，但它们有一些重要的区别。我将通过代码示例来详细介绍这些区别。]]></description><category></category></item><item><title><![CDATA[3.MySQL面试题之Redis 和 Mysql 如何保证数据一致性？]]></title><link>https://blog.csdn.net/yunkongbian2616/article/details/141258600</link><guid>https://blog.csdn.net/yunkongbian2616/article/details/141258600</guid><author>yunkongbian2616</author><pubDate>Fri, 16 Aug 2024 14:14:37 +0800</pubDate><description><![CDATA[Redis 和 MySQL 数据一致性是分布式系统中的一个常见挑战。保证数据一致性通常涉及几种策略，我会详细解释这些策略并提供相应的代码示例。使用消息队列来保证数据一致性，先更新数据库，然后发送消息到队列，由消费者来更新缓存。使用 Canal 监听 MySQL 的 binlog，然后更新 Redis 缓存。这种方法在更新数据库前后都删除缓存，并在第二次删除时增加短暂延迟。这种方法先更新 MySQL，然后更新或删除 Redis 缓存。这种方法先删除 Redis 缓存，然后更新 MySQL。]]></description><category></category></item><item><title><![CDATA[2.MySQL面试题之索引]]></title><link>https://blog.csdn.net/yunkongbian2616/article/details/140933858</link><guid>https://blog.csdn.net/yunkongbian2616/article/details/140933858</guid><author>yunkongbian2616</author><pubDate>Mon, 05 Aug 2024 19:31:26 +0800</pubDate><description><![CDATA[聚簇索引：数据行的物理顺序与索引的逻辑顺序相同，主键索引通常是聚簇索引。非聚簇索引：数据行的物理顺序与索引的逻辑顺序不同，其他类型的索引通常是非聚簇索引。]]></description><category></category></item><item><title><![CDATA[2.MonggoDB是什么？]]></title><link>https://blog.csdn.net/yunkongbian2616/article/details/140901683</link><guid>https://blog.csdn.net/yunkongbian2616/article/details/140901683</guid><author>yunkongbian2616</author><pubDate>Sun, 04 Aug 2024 09:08:41 +0800</pubDate><description><![CDATA[要想知道MongoDB是什么，我们得先搞清楚它不是什么，首先它不是关系数据，不是像下面这样这种格式存储数据。这个图展示了关系型数据库的常用存储方式，一个表格，里面存储了多行记录，并且表格和表格之间可以通过某个字段关联起来。]]></description><category></category></item><item><title><![CDATA[1.MongoDB入门指南之开篇]]></title><link>https://blog.csdn.net/yunkongbian2616/article/details/140889751</link><guid>https://blog.csdn.net/yunkongbian2616/article/details/140889751</guid><author>yunkongbian2616</author><pubDate>Sat, 03 Aug 2024 15:20:56 +0800</pubDate><description><![CDATA[MongoDB大家可能听说过，但是要怎么学习？先学习哪个，很多人是不知道的，毕竟面对一个未知的事物，迷茫是很多人都会遇到的，从今天起我们就开始系统的介绍MongoDB的学习。课程主要分为基础、进阶、运维3个部分，详细内容为：主要讲解MongoDB的基础操作，帮助大家快速入门。
讲解MongoDB的底层实现原理和高阶特性。
从运维的角度介绍MongoDB的日常维护和故障诊断。
]]></description><category></category></item><item><title><![CDATA[1.MySQL面试题之innodb如何解决幻读]]></title><link>https://blog.csdn.net/yunkongbian2616/article/details/140867922</link><guid>https://blog.csdn.net/yunkongbian2616/article/details/140867922</guid><author>yunkongbian2616</author><pubDate>Fri, 02 Aug 2024 13:33:42 +0800</pubDate><description><![CDATA[在数据库系统中，幻读（Phantom Read）是指在一个事务中，两次读取同一范围的数据集时，由于其他事务的插入操作，导致第二次读取结果集发生变化的问题。InnoDB 作为 MySQL 的一个存储引擎，通过多种机制来解决幻读问题，主要包括锁机制和隔离级别。]]></description><category></category></item><item><title><![CDATA[1.kafka面试题之零拷贝]]></title><link>https://blog.csdn.net/yunkongbian2616/article/details/140851405</link><guid>https://blog.csdn.net/yunkongbian2616/article/details/140851405</guid><author>yunkongbian2616</author><pubDate>Fri, 02 Aug 2024 07:00:00 +0800</pubDate><description><![CDATA[Kafka 是一个高性能的分布式消息系统，它使用了多种优化技术来提高数据传输效率，其中之一就是 “零拷贝”（Zero Copy）。零拷贝技术可以显著减少数据在内存中的复制次数，从而提高 I/O 操作的效率，降低 CPU 使用率。以下是对 Kafka 零拷贝原理的详细介绍及其实现代码示例。]]></description><category></category></item><item><title><![CDATA[3.Java面试题之AQS]]></title><link>https://blog.csdn.net/yunkongbian2616/article/details/140843963</link><guid>https://blog.csdn.net/yunkongbian2616/article/details/140843963</guid><author>yunkongbian2616</author><pubDate>Thu, 01 Aug 2024 18:30:00 +0800</pubDate><description><![CDATA[AQS（AbstractQueuedSynchronizer）是Java并发包（java.util.concurrent）中的一个抽象类，用于实现同步器（如锁、信号量、栅栏等）。AQS提供了一种基于FIFO队列的机制来管理线程的竞争和等待状态。其主要作用是简化同步器的实现，通过提供通用的同步状态管理和线程排队机制，使得开发者可以专注于特定同步器的逻辑。了解AQS的工作原理和应用场景是高级Java开发者需要掌握的重要技能。以下是一些常见的AQS面试题及其详细解答。]]></description><category></category></item><item><title><![CDATA[2.Java面试题之线程池]]></title><link>https://blog.csdn.net/yunkongbian2616/article/details/140839513</link><guid>https://blog.csdn.net/yunkongbian2616/article/details/140839513</guid><author>yunkongbian2616</author><pubDate>Thu, 01 Aug 2024 11:39:48 +0800</pubDate><description><![CDATA[Callable 是一个类似于 Runnable 的接口，但它可以返回一个结果或抛出异常。Future 表示一个异步计算的结果，可以用来获取 Callable 的返回值或检查任务是否完成。@Overridetry {// 阻塞等待任务完成并获取结果ForkJoinPool 是 Java 7 引入的一种特殊的线程池，设计用于处理可以递归拆分成更小任务的并行计算。它基于工作窃取算法，适合处理大规模并行任务。]]></description><category></category></item><item><title><![CDATA[1.Java面试题之事件机制]]></title><link>https://blog.csdn.net/yunkongbian2616/article/details/140827870</link><guid>https://blog.csdn.net/yunkongbian2616/article/details/140827870</guid><author>yunkongbian2616</author><pubDate>Thu, 01 Aug 2024 07:00:00 +0800</pubDate><description><![CDATA[事件适配器类是一种提供空实现的抽象类或接口，它实现了某个事件监听器接口中的所有方法。使用适配器类可以避免在实现监听器接口时必须实现所有方法，从而简化代码。// 使用 MouseAdapter 而不是 MouseListener frame . addMouseListener(new MouseAdapter() {} });} }]]></description><category></category></item><item><title><![CDATA[31.jdk源码阅读之AtomicReference]]></title><link>https://blog.csdn.net/yunkongbian2616/article/details/140817217</link><guid>https://blog.csdn.net/yunkongbian2616/article/details/140817217</guid><author>yunkongbian2616</author><pubDate>Wed, 31 Jul 2024 17:00:00 +0800</pubDate><description><![CDATA[AtomicReference 是 Java 中提供的一种用于处理对象引用的原子操作类。它在并发编程中非常有用，可以确保对对象引用的操作是原子的，避免了使用锁的开销。]]></description><category></category></item><item><title><![CDATA[30.jdk源码阅读之ReentrantReadWriteLock]]></title><link>https://blog.csdn.net/yunkongbian2616/article/details/140805847</link><guid>https://blog.csdn.net/yunkongbian2616/article/details/140805847</guid><author>yunkongbian2616</author><pubDate>Wed, 31 Jul 2024 10:07:53 +0800</pubDate><description><![CDATA[ReentrantReadWriteLock 是 Java 并发包中的一个读写锁实现，它允许多个读线程同时访问共享资源，但在写线程访问时，所有的读线程和其他写线程都会被阻塞。不知道大家在日常工作中这个类使用的多不多，对于它的底层实现有没有思考过，比如下面几个问题大家可以看看日常有没有遇到过？]]></description><category></category></item><item><title><![CDATA[29.jdk源码阅读之Exchanger]]></title><link>https://blog.csdn.net/yunkongbian2616/article/details/140780275</link><guid>https://blog.csdn.net/yunkongbian2616/article/details/140780275</guid><author>yunkongbian2616</author><pubDate>Tue, 30 Jul 2024 18:00:00 +0800</pubDate><description><![CDATA[Exchanger 是 Java 并发包 (java.util.concurrent) 中的一个同步点工具类，用于在两个线程之间交换数据。它提供了一种简单而强大的方式来实现线程之间的数据交换。不知道大家在日常工作中或者面试中 有遇到它？]]></description><category></category></item><item><title><![CDATA[27.jdk源码阅读之ConcurrentLinkedDeque]]></title><link>https://blog.csdn.net/yunkongbian2616/article/details/140769520</link><guid>https://blog.csdn.net/yunkongbian2616/article/details/140769520</guid><author>yunkongbian2616</author><pubDate>Tue, 30 Jul 2024 07:00:00 +0800</pubDate><description><![CDATA[ConcurrentLinkedDeque 是 Java 中一个高效、线程安全的双端队列（Deque），使用无锁算法（CAS 操作）来保证线程安全性。由于其复杂的实现和广泛的应用场景，它常常成为面试中的重点考察对象。不知道下面几个问题你在面试过程中有没有被问到过？]]></description><category></category></item><item><title><![CDATA[28.jdk源码阅读之CopyOnWriteArraySet]]></title><link>https://blog.csdn.net/yunkongbian2616/article/details/140778002</link><guid>https://blog.csdn.net/yunkongbian2616/article/details/140778002</guid><author>yunkongbian2616</author><pubDate>Mon, 29 Jul 2024 19:43:06 +0800</pubDate><description><![CDATA[CopyOnWriteArraySet 是 Java 中一个线程安全的 Set 实现，它的底层是基于 CopyOnWriteArrayList 实现的。这种数据结构在并发编程中非常有用，因为它在写操作时会创建一个新的数组副本，从而避免了并发修改问题。]]></description><category></category></item><item><title><![CDATA[26.jdk源码阅读之ConcurrentLinkedQueue]]></title><link>https://blog.csdn.net/yunkongbian2616/article/details/140766298</link><guid>https://blog.csdn.net/yunkongbian2616/article/details/140766298</guid><author>yunkongbian2616</author><pubDate>Mon, 29 Jul 2024 18:00:00 +0800</pubDate><description><![CDATA[ConcurrentLinkedQueue 是 Java  中提供的一个基于无界非阻塞算法的线程安全队列。它是一个适用于高并发环境的队列实现，基于链表结构。]]></description><category></category></item><item><title><![CDATA[25.jdk源码阅读之Executors]]></title><link>https://blog.csdn.net/yunkongbian2616/article/details/140750041</link><guid>https://blog.csdn.net/yunkongbian2616/article/details/140750041</guid><author>yunkongbian2616</author><pubDate>Mon, 29 Jul 2024 09:53:00 +0800</pubDate><description><![CDATA[Executors 是一个工具类，提供了创建不同类型的 ExecutorService 和 ScheduledExecutorService 的静态工厂方法。在日常工作中涉及到并发编程基本都会用到这个，但是你真正了解它吗？下面这几个问题你是否有思考过？]]></description><category></category></item><item><title><![CDATA[24.jdk源码阅读之ExecutorService]]></title><link>https://blog.csdn.net/yunkongbian2616/article/details/140748901</link><guid>https://blog.csdn.net/yunkongbian2616/article/details/140748901</guid><author>yunkongbian2616</author><pubDate>Sun, 28 Jul 2024 13:19:06 +0800</pubDate><description><![CDATA[ExecutorService 是一个非常重要的接口，用于管理和调度线程池。在日常工作中我们应该也是用的比较多，但是你真正了解它的底层实现原理吗？下面的几个问题在日常开发中你是否思考过？面试中是否被问到过？]]></description><category></category></item><item><title><![CDATA[23.jdk源码阅读之Thread(下)]]></title><link>https://blog.csdn.net/yunkongbian2616/article/details/140736126</link><guid>https://blog.csdn.net/yunkongbian2616/article/details/140736126</guid><author>yunkongbian2616</author><pubDate>Sat, 27 Jul 2024 20:15:00 +0800</pubDate><description><![CDATA[上篇文章我们介绍了Tread的一些方法的底层代码实现，这篇文章我们继续。]]></description><category></category></item></channel></rss>