异步编程指南

     

Java中AsynchronousFileChannel不是真正的异步

23

从程序员的角度来看,异步文件 IO 允许在不阻塞调用执行线程的情况下从文件系统读/写数据。也就是说,请求操作的线程。程序员一直可以做到这一点。只需生成一个负责执行 IO 操作的新线程,并允许使用某种机.

Python中异步模式

24 7K

Python 的 asyncio 库专为高效异步编程而设计:import asyncioasync def mock_api_request(i):    print(f"API request st.

Go中使用消息队列实现微服务之间异步数据处理

27 16K

在本文中,我们将深入研究微服务架构的世界,其中每个服务代表一个能够与其他服务协同工作的自治实体。但是如何在这样一个动态环境中管理数据呢?这正是异步成为我们盟友的地方。我们将探讨为什么异步数据处理对于微.

Java中CompletableFuture中4种异步编程方法

30 8K

Java的CompletableFuture框架提供了强大的异步编程能力,方便任务的并发执行。1、runAsync() 与 SupplyAsync()之间的区别CompletableFuture是 J.

Spring中使用@Async与@Transactional协调异步与事务处理

74 1 8K

本文旨在阐明 Spring@Transactional和@Async注释的协同使用,提供对它们的集体应用程序的见解,以优化 Java 应用程序的性能。 什么是 Spring 中的事务管理事务管理在任何.

2023年度Rust调查结果

94 2K

Rust 调查团队分享了于 2023 年 12 月 18 日至 2024 年 1 月 15 日期间进行的 2023年 Rust 编程语言调查的结果。2023年Rust编程语言调查结果显示,Rust用户.

Java中多线程异步读写文件

47 7K

当涉及到 Java 中的文件处理时,管理大文件而不引起性能问题可能具有挑战性。通过使用两个线程,我们可以在不阻塞主线程的情况下高效地读与写文件。通过多线程同时执行多个文件操作,利用多核处理器以及将 I.

什么是事件驱动编程范式?

56

事件驱动编程是一种范例,其中程序的执行由用户操作或消息等事件决定。程序通过预定义的操作响应事件,从而允许异步和响应行为,这在 GUI 应用程序和分布式系统中常见。事件驱动编程范式的优点 实现异步处理,.

SpringBoot中处理ApplicationContextEvent和自定义ApplicationEvent

50 6K

在 Spring 框架中,事件处理是 Spring 组件以松散耦合方式相互通信的一项基本功能。任何 Spring 组件都可以发布事件,而其他组件则可以接收和响应事件。事件发布组件需要 Applicat.

Java中两种基础并行处理方式

50 7K

并行处理是一种计算技术,其中多个任务或进程同时执行,将它们分解为可以同时处理的更小的子任务。并行处理不是一次处理一项任务,而是可以同时执行多个任务,从而提高性能和效率。在并行处理系统中,复杂的任务被分.

Go中Goroutine简单教程

63 4K

Goroutine 是 Go 编程语言中的轻量级、独立执行的并发控制线程。Goroutines 是 Go 中并发和并行编程的基本构建块。它们允许您并发执行函数,从而可以轻松地以可读且可管理的方式编写并.

Java中CompletableFuture全面教程

107 8K

Java 8 中 CompletableFuture 的引入标志着处理异步操作的重大飞跃。CompletableFuture 是一个强大而灵活的类,它有利于并发编程,使开发人员更容易编写高效且可扩展的.

为什么在Rust中实现异步代码是特别困难?

263 3K

使用异步 Rust 比 Go(goroutine)或线程要困难得多:举个例子,假设我们需要在 Web 服务中运行一些 cpu 密集型操作(假设线程阻塞 3 秒)。异步 Rust 与 Tokio 会阻塞.

使用Rust还是Go语言?

187

本文作者曾经写了一本关于 Rust 的书,但他建议不要在大多数项目中使用 Rust,原因有多种,包括其快节奏的开发、缺乏健壮的标准库以及异步编程的困难。Rust 项目腐烂从 2020 年 1 月到 2.

C++ 协程的缺点

370 14K

这篇博文旨在强调将代码库转向协程(例程)所带来的一些风险,我相信持续不良的协程使用可能会导致更不安全和更慢的程序。即使没有多线程,协程也应该像编写多线程代码一样受到怀疑,它仍然是异步的。普通函数和堆栈.

jasyncfio:Java中基于linux io_uring的高性能IO操作库

532 4K

io_uring — 是 Linux 内核中相对较新的 API,在版本 5.1 中引入。io_uring 的构建理念是为文件和网络套接字提供高性能异步输入/输出 (IO)。io_uring 基于内核和.

使用 Vert.x 处理 Kafka 和数据库之间的背压

687 10K

异步编程在开发反应式和响应式应用程序方面带来了许多优点。然而,它也存在缺点和挑战,其中主要的问题之一是背压问题。什么是背压?在物理学中定义是:它是与管道中所需的流体流动相反的阻力或力我们可以把这个问题.

微前端如何相互调用通信?

726 2K

微前端的兴起彻底改变了 Web 开发,使团队能够独立构建、部署和扩展 Web 应用程序的组件。然而,微前端之间的有效通信对于无缝用户体验至关重要。在本文中,我将探讨各种通信模式,这些模式可以帮助团队驾.

《KIP-932:Queues for Kafka》于7天前发布。

329

Kafka的队列Queues 是目前讨论的最热门的新功能!传统的队列系统是这样一种系统: - 多个消费者从同一队列读取(pub-sub) - 一个特定的消费者从一个特定的生产者读取(点对点) 消息通常.

异步 Rust 如何工作?

1018 1 6K
Rust 有一个新兴的异步系统。如果你的应用程序 IO 很重,你应该简单地“使用异步”,一切都会高效地工作。您可以使用async fn,.await,让它在后台处理,而 CPU 会做一些有用的事情。然.

bbeaupain/hella-http:基于nio_uring的Hella快速Java HTTP服务器库

623 1 2K

hella-http是一个用于 Java 的 hella 快速 HTTP 库,它使用nio_uring进行 I/O。它具有非常小的代码库,是当今可用于 Java 的最具扩展性的 HTTP 服务器之一。.

在 Java、Python、JavaScript 和 Go 中实现异步编程比较

527 4K

探索各种语言的异步编程世界,包括 Java、Python、JavaScript 和 Golang。Java 中的异步编程Executor 框架和 CompletableFuture 类提供了更强大、更.

如何在 Java 中使用回调? | infoworld

685 7K

Java 中的回调操作是一个函数传递给另一个函数并在某个操作完成后执行。回调可以同步或异步执行。 在同步回调的情况下,一个函数紧接着另一个执行。 在异步回调的情况下,一个函数在一段不确定的时间后执行,.

基于Spring Integration和Apache Camel的SEDA

1474 6K
SEDA,或阶段化事件驱动架构,是Matt Welsh在他的博士论文中提出的一种架构风格。论文。它的主要优点是可伸缩性、支持高并发流量和可维护性。由于可伸缩性是SEDA的核心目标,因此通常最好设计专注.

Java虚拟线程:异步编程之死

2706 4 14K
最近,虚拟线程的第二个预览版作为JEP 436的一部分发布。第一个预览版中引入的一些更改已经完成,我们离获得对虚拟线程的完全访问权又近了一步。在本文中,我们将尝试为您提供有关为什么 JVM 生态系统中.

Rust异步Asyn的特点

1990 1 9K

经常听到有人把Rust和其他语言描述为 "穿风衣的N种语言"。在Rust中,我们有Rust的控制流结构,我们有decl-macro元语言,我们有trait系统(它是图灵完备的),我们有cfg注释语言-.

SpringBoot异步注释@Async的并发陷阱

1413 2K

在 Java 并发编程中实现异步函数之前,一般需要使用线程或线程池。线程池的底层也使用线程。要实现一个线程,要么继承Thread类,要么实现Runnable接口,然后在run方法中编写具体的业务逻辑代.

Rust 1.64.0发布:异步是亮点

1645 1

每六周发布一次新版本,在每个新版本中,这里都有一个包含一些亮点:1、Rust 现在有一个与异步相关的新特性:IntoFuture。.await 语法可用于任何实现 IntoFuture 的东西。(类似.

在事件驱动管道中设计弹性系统

1462 1
我为我们的金融科技软件设计了事件驱动的架构。它由三个部分组成。第一部分有一个同步过程,第二部分和第三部分有异步操作。响应回复客户端后,将Kafka(消息代理)的最终结果发送到第二部分和第三部分。在第二.

Kotlin和Java简单的重试代码 - Vlad

1336 1 2K

这是您无需任何其他库或代码依赖项即可重试部分代码的方式。如果需要更复杂的东西,推荐使用Resilience4j库,因为它提供了其他即用型功能。public static <T> T executeWi.