Java
未读
Java多线程(五):深入理解Java线程池与ThreadPoolExecutor
引言 在前四篇文章中,我们系统地探讨了Java多线程的核心概念:从线程的创建、生命周期,到线程同步的 synchronized 关键字,再到保证内存可见性的 volatile 关键字。这些知识为我们构建并发程序打下了坚实的基础。 然而,在实际的高并发应用开发中,如果每次需要执行任务时都创建一个新线程
Java
未读
Java多线程(四):深入理解 volatile 关键字与内存可见性
在前几篇文章中,我们探讨了多线程的创建方式、生命周期以及使用 synchronized 关键字进行线程同步。通过 synchronized,我们解决了多线程环境下共享数据操作的原子性和可见性问题,确保了线程安全。然而,synchronized 作为一种重量级的互斥锁,在某些特定场景下可能显得“大材小
Java
未读
Java多线程(三):线程同步与 synchronized 关键字详解
在前两篇文章中,我们学习了多线程的三种创建方式以及线程的生命周期与状态转换,掌握了线程从创建到终止的全过程。然而,当多个线程并发访问共享资源时,如果没有适当的协调机制,就可能出现数据不一致、竞态条件(Race Condition) 等严重问题。 本文将深入探讨 Java 中最基础也是最重要的线程同步
Java
未读
Java多线程(二):线程的生命周期与状态转换
本文详解 Java 线程的六种生命周期状态(NEW、RUNNABLE、BLOCKED、WAITING、TIMED_WAITING、TERMINATED),并结合代码说明各状态间的转换关系及触发方法(如 start、synchronized、wait/notify、sleep、join 等),帮助读者构建线程运行机制的完整认知。
Java
未读
Java多线程(一):多线程的三种创建方式
本文介绍了Java多线程的三种创建方式:继承Thread类、实现Runnable接口、实现Callable接口。继承Thread类简单直观,但受限于单继承;实现Runnable接口解耦任务与线程,支持Lambda,最常用;Callable接口支持返回结果和抛出异常,配合FutureTask使用。文章强调推荐实现Runnable接口,并注意处理线程中断。