随笔分类 - 并发编程
摘要:核心需求: 实现一个基于线程池的批量任务执行器,具备以下功能特性: 任务并发执行:将一批任务并发提交至线程池执行 执行状态监控:实时监控所有任务的执行状态,包括成功、失败及异常信息 超时控制机制:设置执行超时阈值(10分钟),超时后中断未完成任务的执行 持久化状态记录: 将每个任务的执行结果(成功/
        阅读全文
            
摘要:🌟 Linux 内核中用于实现锁机制的主要数据结构 在 Linux 内核中,锁是一种 同步原语,用于防止多处理器或多线程环境下的竞态条件和数据不一致。Linux 内核提供了多种锁机制,这些锁基于不同的数据结构实现。主要包括以下几类数据结构: 1️⃣ spinlock_t(自旋锁) 数据结构定义: 
        阅读全文
            
摘要:🚩 synchronized 的基本概念 在 Java 中,synchronized 是一种 内置锁(Monitor锁) 的实现,任何对象都天然可以作为锁(因为每个对象都拥有一份与之关联的 Monitor 数据结构)。 synchronized 可以用于: 修饰实例方法(锁当前对象) 修饰静态方法
        阅读全文
            
摘要:Java NIO 核心概念 vs 医院系统映射 flowchart TB subgraph Java NIO Selector[Selector<br>分诊台] Channel[Channel<br>患者通道] Buffer[Buffer<br>病历本] SelectionKey[Selection
        阅读全文
            
摘要:1.这是一个使用 Java 实现的生产者-消费者模型的示例,展示线程间通信。示例1使用BlockingQueue 来简化实现,BlockingQueue底层使用 wait() 和 notify() 机制来协调生产者和消费者线程。 示例1: import java.util.concurrent.Bl
        阅读全文
            
摘要:Java线程的中断机制底层原理,以及否涉及CPU指令周期检测 这里将深入研究 Java 线程中断机制的底层原理,特别关注以下问题: 当调用 Thread.interrupt() 方法时,JVM 是否会让目标线程在每个 CPU 指令周期隐式检查中断标志? 中断标志的设置是否必须通过线程自身调用 Thr
        阅读全文
            
摘要:在 Java 中,lambda 表达式要求捕获的局部变量是 final 或者 effectively final(“实际上是 final”)的,即在声明后没有被重新赋值。这一限制是由 lambda 表达式的设计原理和作用域管理机制决定的,目的是确保代码行为的一致性和线程安全。下面详细解释这个原因。 
        阅读全文
            
摘要:在 Java 语言中,理解方法调用栈、栈帧、局部变量表、操作数栈等概念非常重要,它们与方法的执行和内存管理密切相关。下面是对这些概念的详细解释及它们之间的关系: 图片来源于https://blog.csdn.net/qq_35621494/article/details/107351237 原作者的
        阅读全文
            
摘要:要人为地触发 ThreadPoolTaskExecutor 的拒绝策略并测试其是否生效,可以通过以下步骤进行设置和操作: 限制线程池的核心线程数:将线程池的核心线程数和最大线程数设置为较小的值,这样更容易填满线程池中的线程。 限制任务队列的大小:将任务队列设置为较小的值,例如1,这样在提交任务时可以
        阅读全文
            
摘要:在 Spring 中,使用 ThreadPoolTaskExecutor 时,如果线程池中的 任务队列(Queue) 满了,默认情况下并不会直接抛出异常,而是会根据 RejectedExecutionHandler 的策略来决定如何处理被拒绝的任务。ThreadPoolTaskExecutor 继承
        阅读全文
            
摘要:是的,Java Profilers 可以用来监控线程池以及整个应用程序的性能和资源使用情况,包括线程的创建、执行、阻塞、等待和终止等细节。通过 Java Profilers,您可以深入分析线程池的运行状态,检查活跃线程、阻塞线程和任务队列的情况。 常用的 Java Profilers 下面是几种常见
        阅读全文
            
摘要:在 Java 程序运行期间,动态查看线程池的使用情况可以通过获取线程池的相关信息,包括当前线程的数量、已完成的任务数量、等待执行的任务数量等。要实现这些功能,通常会使用 ThreadPoolExecutor 提供的监控方法。 ThreadPoolExecutor 类提供了一系列方法来获取线程池的状态
        阅读全文
            
摘要:Zulu JDK(Azul Zulu OpenJDK 发行版)自带了一系列工具来管理和监控 Java 应用程序,但 Zulu JDK 不包含 Oracle JDK 中的图形化监控工具 Java VisualVM(即 jvisualvm)或 JConsole。这些工具主要是 Oracle JDK 特有
        阅读全文
            
摘要:在编程语言中,函数(在 C 语言中使用)和 方法(在 Java 中使用)是两个重要的概念,尽管它们在不同语言中的实现有差异,但在本质上都是 可重用的代码块。以下是对 C 语言中函数、Java 语言中方法的本质以及线程安全问题的详细分析: 1. C 语言中函数的本质 在 C 语言中,函数的本质是 一段
        阅读全文
            
                    
                
浙公网安备 33010602011771号