归档

2024 年 08 月

前言 本文将介绍 Tomcat 中的 NIO 使用,使大家对 Java NIO 的生产使用有更加直观的认识。 虽然本文的源码篇幅也不短,但是 Tomcat 的源码毕竟不像 Doug Lea 的并发源码那么“变态”,对于大部分读者来说,阅读难度比之前介绍的其他并发源码要简单一些,所以读者不要觉得有什么压力。 本文基于 Tomcat…
JDK在线程的Stop方法时明确不得强行销毁一个线程,要优雅的退出线程。 何谓优雅退出线程,即业务将进行中请求正确被处理,取消待执行请求,执行资源回收,最终Thread Runable run 方法return 结束执行。 首先问为什么要退出一个线程,再提问如何退出一个线程 任务执行完成,或异常终止,任务认为无需再占用线程。…
不久之前,我遇到了一个Java GC问题。有个服务在高峰期耗时增加,触达上游超时配置,导致上游调用失败率增加。经过初步排查确认这并非因为个别接口的性能恶化,而是服务整体上性能恶化。 最终定位原因是,高峰期 YoungGC和 FullGC 频率过高,导致耗时增加。遂决定从GC方向优化性能,经过两周的治理,GC问题得到大幅改善,接口耗时下降30%。…
前些日子,测试提过来一个bug,说下单价格应该是 2.01,但是在订单详情中展示了2.00元。我头嗡的一下子,艹,不会是因为double 的精度问题吧~ 果不其然,经过排查代码,最终定位原因订单详情展示金额时,使用double 进行了金额转换,导致金额不准。…
摘要: I/O复用模型,是同步非阻塞,这里的非阻塞是指I/O读写,对应的是recvfrom操作,因为数据报文已经准备好,无需阻塞。 说它是同步,是因为,这个执行是在一个线程里面执行的。有时候,还会说它又是阻塞的,实际上是指阻塞在select上面,必须等到读就绪、写就绪等网络事件。 一、I/O复用模型解读…
1. 自动拆箱出现 null 包装器类型自动拆箱为基础类型时极容易出现NPE。如下图示例,方法void initTask(int taskId),调用时taskId如果为 null ,则会出现NPE。正确做法是 可能为 null 的属性,一律声明为包装器,此外从外部获取的变量一定要检查 null ,进行防御式编程。 public void…
什么是ClouDNS ClouDNS 身为欧洲名列前茅的全球托管 DNS 服务供应商,其服务范畴涵盖了 GeoDNS、Anycast DNS 以及拥有 DDoS 防护的 DNS 等领域。该公司大力推行业界领先的云服务架构,力求实现顶级的 DNS 速度和 DNS 冗余性能。ClouDNS 平台针对应用程序以及 DNS…
简介 DweebUI 是一个开源的 Web 用户界面(WebUI),旨在用于容器管理。它提供了简便的设置流程、可动态更新的仪表盘以及多用户权限系统。 功能特点 该项目的功能涵盖以下方面: 动态更新的仪表盘 :能够展示服务器指标、容器指标以及容器控制。用户可通过该仪表盘监控服务器和容器的状态信息。 多用户支持和权限系统…
1.什么是qwen:0.5b? 模型介绍: Qwen1.5是阿里云推出的一系列大型语言模型。 Qwen是阿里云推出的一系列基于Transformer的大型语言模型,在大量数据(包括网页文本、书籍、代码等)进行了预训练。 硬件要求: CPU配置:CPU最低第六代intel酷睿4核,AMD ZEN 4核以上;推荐12代intel酷睿8核,AMD ZEN…
1.什么是pf4j? 一个插件框架,用于实现插件的动态加载,支持的插件格式(zip、jar)。 核心组件 Plugin :是所有插件类型的基类。每个插件都被加载到一个单独的类加载器中以避免冲突。 PluginManager:用于插件管理的所有方面(加载、启动、停止)。您可以使用内置实现作为JarPluginManager,…
上一页 下一页