并发编程
文章平均质量分 93
TodoCoder
TodoCoder的博客!
展开
-
【线程池进阶】线程池性能提升之道:核心线程数选择与定制实战
线程池的核心线程数选择直接影响程序性能。本文提供了选择核心线程数的技巧与原则,并详细介绍了如何根据实际需求定制高性能的线程池。通过优化线程池,可以显著提高程序运行效率和吞吐量...原创 2023-06-06 09:53:38 · 202 阅读 · 0 评论 -
【并发编程】Future掌控未来之Callable是如何返回结果和异常的【源码详解】
Callable相信你肯定知道怎么用,但是Callable是怎么返回结果的,异常是怎么抛出线程之外的?底层原理是什么?你知道吗?我们从使用出发,到底层源码实现,来分析一下Callable的具体流程,相信面试官也很乐意听你讲这些。。...原创 2022-07-06 06:00:00 · 1516 阅读 · 0 评论 -
【Java线程】Future掌控未来之Runnable的缺陷
大哥Runnable是Java爸爸第一胎生的,可谓是凤表龙姿,吾门标秀啊,给的位置都是java.lang这个C位,但是慢慢的发现他是个傻子。。。。原创 2022-07-05 22:41:17 · 355 阅读 · 0 评论 -
【Java线程基础】01.线程实现方式千万种,为何独终于你一种
在程序开发中,并发编程是所有程序员必须掌握的技能,而多线程是并发编程中基础中的基础,要想进一步的写出高性能的Java程序,必须要先实现多线程,才可以继续后续的一系列开发,所以我们本节从并发编程的基础如何实现线程开始讲起。尽管线程的实现很基础,看似很简单,但实际上却暗藏玄机。因为在我们的开发中,不只是仅仅会实现线程就万事大吉,我们还要考虑以下问题:实现线程是否对后续的开发有扩展的支持。实现线程的开销是否大于收益。如何合理的选出一种实现方式。要想解答以上问题,我们需要先看以下两个问题:实现线程原创 2022-05-14 22:18:35 · 143 阅读 · 0 评论 -
一个线上bug引出的parallelStream() for循环背后面的ForkJoin ...
背景公司的一个ETL项目,主要是从Blob上的CSV文件和HDFS平台下载数据并解析后入到业务的Mysql,数据量大概一个小时20个文件左右(基本集中到每个小时的50分左右),每个文件8~20万条数据量,分别入到不同的表, 我们在入库的时候是把文件解析后分成1000条一批批量插入(篇幅有限,这里只聊入库的场景)。 用的是jdk1.8的Stream.parallel()的方式并发入库。问题运行一段时间后发现随着文件量的增加,入库时间越来越长,分析发现入库线程每个实例入库线程大概8个左右,线程占用满原创 2021-08-29 10:33:29 · 434 阅读 · 0 评论