avatar

十六小站

欢迎来到我的个人主页! 期待与您分享我的经验与故事,一起探索技术的无穷可能!

  • 首页
  • NAS专题
  • 关于
Home 多线程的那些事
文章

多线程的那些事

Posted 2024-12-25 Updated 2024-12- 25
By 十六
1~2 min read

踩坑记录

在线程中打印的日志,没有错误信息和堆栈信息。

代码:

ForkJoinTask<?> task = pool.submit(() -> {
                try {
                    processContent(appendixs);
                } catch (Exception e) {
                    LOGGER.error("进程执行错误", e);
                }
            });
//有序关闭线程池,但是在队列中的线程会不受影响。
            pool.shutdown();

在查看日志的时候,日志中只有一行“进程执行错误”,然后什么信息也没有了,也没有错误详情,也没有堆栈 。

需要改成一下捕获方法。

ForkJoinTask<?> task = pool.submit(() -> {              
        processContent(appendixs);       
            });
//有序关闭线程池,但是在队列中的线程会不受影响。
            pool.shutdown();

// 捕获异常
try {
    task.get(); // 获取任务的执行结果或异常
} catch (Exception e) {
   LOGGER.error("进程执行错误", e);
}
pool.shutdown();

高手之路
Java
License:  CC BY 4.0
Share

Further Reading

Apr 2, 2025

简单规则引擎

背景 在一些项目中我们需要通过用户自定义配置一些阈值逻辑进行判断是否触发阈值,例如大部分IOT项目中需要设置自动触发条件(例如:每天22:00后 且 窗帘关闭的情况下关灯)。 当然有一些成熟如规则引擎如:Drools和LiteFlow,但是这里写一款简单的java实现方案作为记录。 前端示例 以下示

Feb 24, 2025

Jvm参数

JVM参数的设置对应用程序的性能和稳定性至关重要,尤其是在高并发场景下。合理的JVM参数配置可以优化内存使用、减少GC停顿时间、提升吞吐量。合适的jvm参数能将服务器性能压榨到极致。 堆内存设置 堆内存是JVM中最重要的内存区域,用于存储对象实例。合理设置堆内存大小可以避免频繁GC和内存溢出。 -X

Dec 25, 2024

多线程的那些事

踩坑记录 在线程中打印的日志,没有错误信息和堆栈信息。 代码: ForkJoinTask<?> task = pool.submit(() -> { try { processContent(appendixs);

OLDER

OpenSearch踩坑记录

NEWER

OpenSearch常用脚本

Recently Updated

  • Onlyoffice编译
  • K6+Playwright实现并发测试
  • 简单规则引擎
  • 在WEB中子线程可以访问Request上下文
  • onlyoffice配置

Trending Tags

Java Docker 前端 中间件 数据库 群晖 unraid

Contents

©2025 十六小站. 陕ICP备2023009742号-2