Dojo
话题
新佳
订阅
极道
元认知
元逻辑
元设计
元编程
元语言
多线程编程指南
Java中ExecutorService与CompletableFuture指南
在本教程中,我们将探讨两个重要的 Java 类,用于处理需要并发运行的任务:ExecutorService和CompletableFuture。我们将学习它们的功能以及如何有效地使用它们,并且我们将了解它们之间的主要区别。 Executor
Java 并发:线程、线程池和执行器全面教程
本指南深入研究了Executor接口的内部工作原理及其各种实现。 并发的基础知识想象一下餐厅厨房的单一流程。厨房本身就代表了这个过程,准备食物、洗碗和接受订单等各种任务同时发生。现在,线程作为厨房里的厨师进来了。每
Spring Batch中通过多线程和异步处理提高性能
自计算机使用兴起以来,公司出于不同的目的始终依赖批处理数据,要么是在应用程序之间移动数据 (ETL),要么是进行一些需要很长时间才能实时完成的并行计算。 处理大量数据的挑战始终在于如何充分利用可用的计算资源,从而优化时间和成本。
Java中结构化并发
并发是现代软件开发中的一个基本概念,允许程序同时执行多个任务。Java 是最流行的编程语言之一,它为并发编程提供了强大的支持。近年来,结构化并发已成为一种强大的范例,可以以更有组织、更可预测的方式编写并发代码。在本节中,我们将深入研究 Java 中的结构化并发,探索其优势并通过实际示例演示如何实现它
如何在 ScheduledExecutorService 中使用虚拟线程
在本文中,我们介绍了使用虚拟线程相对于传统平台线程的一些优势。然后,我们研究了如何使用Thread.sleep()和 ScheduledExecutorService来安排任务在虚拟线程中运行。 虚拟线程是 JDK 21 中官方引入的一个有用功能,
两种虚拟线程对比:JDK vs. Spring Core Reactor性能对比
1、基于 JDK 的虚拟线程实现:摘自
Rust中不要使用Arc《Mutex》创建HashMap
这篇文章详细解释了为什么在 Rust 中使用 Arc>> 并不是一个理想的选择,以及提供了一些更好的替代方案。 粗粒度锁定导致的争用问题使用 Arc
Rust中多线程使用串行端口教程
如何在 rust 中的多个线程中使用串行端口? 要在 Rust 中的多个线程中使用串行端口,可以按照以下步骤操作: 导入必要的库:
深入解释Go中context使用方式
这篇文章详细介绍了Go 语言中context 函数背后的实现细节和代码,帮助开发人员了解上下文包的底层工作原理。 我们来看一个使用 context 包的简单示例:该函数接受一个上下文并将其传递给另一个函数,因为对于大多数人来说,这就是上下文
Java中命名执行器服务线程和线程池
ExecutorService提供了一种在 Java 中管理线程和执行并发任务的便捷方法。使用ExecutorService时,为线程和线程池分配有意义的名称有助于改善线程的调试、监控和理解。在本文中,我们将了解在 Java 的ExecutorService中命名线程和线程池的不同方法。 <
ExecutorService并发功能教程
在不断发展的软件开发世界中,高效管理并发任务的能力至关重要。传统的线程方法可能变得繁琐且容易出错,尤其是在处理大量异步操作时。ExecutorService 就是其中的代表:Java 并发框架中的一个强大的抽象,旨在简化和精简异步任务的执行。 本指南是您掌
Golang 同步互斥:正常模式和饥饿模式
在 Go 中,互斥(或MUT ual EX排斥)基本上是一种确保一次只有一个 goroutine 干扰共享资源的方法。此资源可以是一段代码、一个整数、一个映射、一个结构、一个通道或几乎任何东西。 为什么我们需要 sync.Mutex
性能与简洁兼得:Java结构化并发终成正果
Java的结构化并发:终于站稳脚跟啦! 【正文】Java这个"结构化并发"的API可真是折腾啊!就像班里那个总在改主意的同学,它经历了两次"孵化"和四次"预览"才终于定型。不过这次看起来是真的稳了!
Go 并发大师:上下文传播和取消的秘密揭晓
Go 的并发模型改变了游戏规则,但管理复杂的并发操作可能很棘手。这就是上下文传播和取消的作用所在。这些强大的工具让我们能够构建跨多个 goroutine 甚至网络边界的强大、可取消的操作。 让我们从基础开始。context 包提供了一种跨 API 边界和进
无锁TreeMap导致3,200%CPU
这篇文章记录了作者排查一台机器因CPU利用率异常飙升至3200%(32核心全负荷)的过程。 作者发现机器几乎无法通过SSH访问,CPU利用率高达3200%,远超之前仅占用单核心100%的bug。 借助Ja
厕所排队比超市更糟?1条队反而误事!
这里有一个大家都懂的生活小窍门:排队时,一条队比两条队效率更高。比如超市结账时,所有人排成一条长队,哪个收银台空出来就轮到下一个人去结账。这样做有两个好处:第一,不会出现收银员闲着却有人傻等的状况;第二,万一前面遇到个磨蹭的顾客(比如非要开发票或者争论优惠券过期的人),后面排队的人也不会太崩
Rust 中顺序、异步和多线程三个方式对比
本博客通过一个旨在检查 URL 有效性的 Rust 项目,探讨了不同的编程范式——顺序、异步和多线程。通过研究每个范式如何处理链接验证,我们可以更好地了解它们在 I/O 密集型任务环境中的优势和劣势。与我一起深入研究这些范式的实现,展示它们各自的方法和性能特征。
可传输线程本地简介
在本教程中,我们探索了线程局部变量的不同实现。我们根据需要选择一种。 简单的ThreadLocal变量对于具有特定上下文的单线程执行非常有用。当我们需要在多个继承线程之间共享上下文时,我们使用InheritableThreadLocal 。最后,我们可以从
下页