Spring Boot 项目介绍 发表于 2023-02-19 更新于 2024-01-15 分类于 开发框架-Spring Boot 引言作为学习过 Java 的软件开发者,相信都知道 Spring 这一伟大的框架,它所拥有的强大功能之一就是可以集成各种开源软件。但随着互联网的高速发展,各种框架层出不穷,这就对系统架构的灵活性、扩展性、可伸缩性 和 高可用性都提出了新的要求。 阅读全文 »
flea-msg使用之JMS初识 发表于 2023-02-11 更新于 2023-06-15 分类于 开发框架-Flea , flea-msg 1. JMS 基本概念1.1 什么是 JMS ?Java 消息服务【Java Message Service】,又简称 JMS,它是 Java 平台上有关面向消息中间件(MOM)的技术规范。 阅读全文 »
Java并发编程学习15-深入探索任务关闭机制(非正常线程终止与JVM关闭详解) 发表于 2023-01-08 更新于 2024-03-19 分类于 开发语言-Java , Java并发编程 引言在软件开发中,任务关闭是一个至关重要的环节,它关乎到应用程序的稳定性和资源的有效管理。在之前的篇章中,我们已经初步探讨了任务关闭的一些基本概念和原则。然而,任务关闭的复杂性在于,它不仅仅涉及到正常情况下的资源释放,还需要处理各种异常情况,如非正常的线程终止以及JVM的关闭。这些异常情况如果处理不当,可能会导致资源泄露、数据丢失甚至系统崩溃。因此,本文将深入探索非正常线程终止的处理机制以及JVM关闭时的注意事项,帮助开发者更好地掌握任务关闭的精髓,确保应用程序能够优雅地处理各种关闭场景。 阅读全文 »
Java并发编程学习14-探索基于线程的服务如何优雅关闭 发表于 2022-12-05 更新于 2024-03-19 分类于 开发语言-Java , Java并发编程 引言我们知道,应用程序通常会创建拥有多个线程的服务,例如线程池,并且这些服务的生命周期通常比创建它们的方法的生命周期更长。如果应用程序准备退出,那么这些服务所拥有的线程也需要结束。由于无法通过抢占式的方法来停止线程,因此它们需要自行结束。 线程应该有一个相应的所有者,即创建该线程的类。而线程池就是其工作者线程的所有者,如果要停止这些线程,那么应当通过线程池来操作。 应用程序可以拥有服务,服务也可以拥有工作者线程,但应用程序并不能拥有工作者线程,因此应用程序不能直接停止工作者线程。 阅读全文 »
Java并发编程学习13-任务取消的进阶使用 发表于 2022-11-15 更新于 2024-03-19 分类于 开发语言-Java , Java并发编程 引言《任务取消》由于篇幅较多,拆分了两篇来介绍各种实现取消和中断的机制,以及如何编写任务和服务,使它们能对取消请求做出响应。 阅读全文 »
Java并发编程学习12-任务取消和线程中断 发表于 2022-11-11 更新于 2024-03-19 分类于 开发语言-Java , Java并发编程 引言《任务取消》由于篇幅较多,拆分了两篇来介绍各种实现取消和中断的机制,以及如何编写任务和服务,使它们能对取消请求做出响应。 阅读全文 »
Java并发编程学习11-任务执行演示 发表于 2022-10-15 更新于 2024-03-19 分类于 开发语言-Java , Java并发编程 引言上一篇博文带大家了解了任务执行和 Executor 框架的基础知识,本篇将结合这些内容,演示一些不同版本的任务执行Demo,并且每个版本都实现了不同程度的并发性。 以下的示例是要实现浏览器程序中的页面渲染功能:将 HTML 页面绘制到图像缓存中【为了简便,假设 HTML 页面只包含标签文本、预定义大小的图片和URL】。 阅读全文 »
Java并发编程学习10-任务执行与Executor框架 发表于 2022-10-03 更新于 2024-03-19 分类于 开发语言-Java , Java并发编程 任务执行何为任务? 任务通常是一些抽象且离散的工作单元。 大多数并发应用程序都是围绕着 “任务执行” 来构造的。而围绕着 “任务执行” 来设计应用程序结构时,首先要做的就是要找出清晰的任务边界。大多数服务器应用程序都提供了一种自然的任务边界选择方式:以独立的客户请求为边界。将独立的请求作为任务边界,既可以实现任务的独立性,又可以实现合理的任务规模。 阅读全文 »
Java并发编程学习9-并发基础演练 发表于 2022-09-23 更新于 2024-03-19 分类于 开发语言-Java , Java并发编程 引言本篇我们将逐步构建一个高效且可伸缩的缓存,用于改进一个高计算开销的函数。 阅读全文 »
Java并发编程学习8-同步工具类(闭锁、信号量和栅栏) 发表于 2022-09-17 更新于 2024-03-19 分类于 开发语言-Java , Java并发编程 引言同步工具类可以是任意一个对象,只要它根据其自身的状态来协调线程的控制流。阻塞队列可以作为同步工具类,类似地还有信号量(Semaphore)、栅栏(Barrier)以及闭锁(Latch)。当然 Java 平台类库中还有其他的一些同步工具类,如果这些都不能满足要求,那我们还可以创建自己的同步工具类【这块内容将在后续的博文中会介绍】。 同步工具类封装了一些状态,这些状态将决定执行同步工具类的线程是继续执行还是等待,此外还提供了一些方法对状态进行操作,以及另一些方法用于高效地等待同步工具类进入到预期状态。 阅读全文 »