异步编程 共 48 篇文章

Java CompletableFuture.thenCompose与thenApply的链式区别
2026-05-16 08:18:34
Java CompletableFuture.thenCompose与thenCompose的链式区别 在编写异步 Java 代码时,CompletableFuture 是处理多阶段任务的强大工具。许多开发者容易混淆 thenApply 和 thenCompose,导致代码产生不必要的嵌套结构,甚至
Java 异步编程 thenApply
43 0
Java CompletableFuture组合异步操作的超时处理策略
2026-05-14 18:19:34
Java CompletableFuture组合异步操作的超时处理策略 在异步编程中,单个任务的超时控制相对简单,但多个 CompletableFuture 组合操作(如并行执行、链式调用)的超时处理往往容易失控。若未正确设置超时,系统线程可能被长时间阻塞,导致资源耗尽。 本文将针对三种常见场景,提
Java 异步编程 超时处理
44 0
Python协程Asyncio中Task取消信号的传递与处理
2026-05-13 09:19:37
Python协程Asyncio中Task取消信号的传递与处理 在Asyncio编程中,Task(任务)是协程的载体。当需要停止一个正在运行的协程时,就需要用到Task的取消机制。理解并正确处理Task的取消信号,是编写健壮异步程序的关键。 1. 理解Task取消 Task取消不是强制终止,而是向协程
Python 协程 Asyncio
43 0
Python asyncio.Queue在协程间通信的容量限制
2026-05-11 13:37:46
Python asyncio.Queue在协程间通信的容量限制 asyncio.Queue 是 Python 异步编程中协程间通信的核心工具。它允许一个协程将数据放入队列,另一个协程从队列中取出数据,两者可以独立运行。asyncio.Queue 的一个关键特性是容量限制,即 maxsize 参数。这
asyncio.Queue 容量限制 协程通信
35 0
Java CompletableFuture的异常处理为什么不能用try-catch
2026-05-09 22:25:00
Java CompletableFuture的异常处理为什么不能用trycatch 在 Java 异步编程中,CompletableFuture 是处理异步任务的首选工具。然而,许多开发者习惯性地在调用 get 方法时使用 trycatch 来捕获异常,却发现这并不能捕获到异步任务内部抛出的异常。本
JavaCompletableFuture try-catch异常 异步编程
46 0
Python functools.partial偏函数在回调场景中的妙用
2026-05-09 09:24:12
Python functools.partial偏函数在回调场景中的妙用 在编写异步或事件驱动的程序时,你经常需要将一个函数注册为回调。回调函数通常由事件触发,但它们往往只能接收一个参数(例如事件对象)。当你需要将额外的信息传递给这个回调函数时,代码会变得复杂和冗余。functools.partia
Python functools.partial 偏函数
62 0
Python asyncio.TaskGroup取代gather的结构化并发
2026-05-05 11:19:29
Python asyncio.TaskGroup取代gather的结构化并发 在 Python 异步编程中,管理多个并发任务长期以来依赖于 asyncio.gather。然而,gather 在处理异常和任务取消时存在局限性,往往需要编写大量样板代码来确保“要么全做,要么全不做”。Python 3.1
Python asyncio 异步编程
49 0
Python asyncio.wait_for对协程设置超时并取消
2026-05-04 21:25:36
Python asyncio.waitfor对协程设置超时并取消 在编写异步程序时,经常会遇到外部请求响应慢或 IO 操作卡住的情况。如果不做处理,这些挂起的协程会无限期占用资源。asyncio.waitfor 提供了一种机制,强制限制协程的运行时间。一旦超时,它会自动取消协程并抛出异常。 以下介绍
Python asyncio 协程
48 0
Python asyncio.timeout在Python 3.11中的新用法
2026-05-04 00:27:57
Python 3.11 引入了 asyncio.timeout 作为处理异步操作超时的新标准方式。相比于旧版的 asyncio.waitfor,它提供了更灵活的上下文管理器接口,支持动态调整超时时间和设置绝对截止时间。以下是在实际代码中使用 asyncio.timeout 的具体步骤。 1. 基础用
Python asyncio 异步编程
45 0
JavaScript事件循环面试题:setTimeout和Promise的执行顺序
2026-05-01 20:28:08
JavaScript事件循环面试题:setTimeout和Promise的执行顺序 在JavaScript面试中,关于setTimeout和Promise的执行顺序问题是高频考点。要准确解答这类问题,无需死记硬背,只需掌握一套标准化的分析流程。以下是解决该问题的核心步骤和逻辑解析。 1. 理解核心机
事件循环 前端面试 Promise
45 0
Python asyncio.Event在协程间事件通知的用法
2026-04-29 01:15:27
asyncio.Event 是 Python asyncio 库中用于协程间简单通信的同步原语。它的作用类似于一个线程安全的标志位,允许一个或多个协程等待某个事件发生,直到另一个协程将该事件标志位设为“真”。这就好比比赛中的发令枪,裁判(主控协程)鸣枪(设置事件),所有运动员(等待协程)听到枪响后同
Python asyncio 协程
68 0
JavaScript AbortController取消fetch请求的正确姿势
2026-04-28 10:23:22
在Web开发中,处理网络请求时经常遇到用户快速切换页面或在搜索框中连续输入的情况。如果不及时取消已发出的旧请求,不仅会浪费服务器资源和带宽,还可能导致“竞态条件”,即旧请求的数据晚于新请求返回,覆盖了正确的界面内容。AbortController 是现代浏览器提供的原生 API,专门用于取消如 fe
前端开发 JavaScript AbortController
73 0
JavaScript Promise链中return和不return的区别
2026-04-26 17:14:55
JavaScript Promise链中return和不return的区别 在 JavaScript 异步编程中,Promise 链式调用(Chaining)是处理多步骤操作的核心机制。很多开发者在编写 .then 链时,常常因为遗漏 return 关键字而导致数据丢失或执行顺序混乱。 本文将直接拆
JS Promise 异步编程
61 0
Vue中$nextTick的回调函数与Promise写法的区别
2026-04-26 01:12:56
Vue中$nextTick的回调函数与Promise写法的区别 Vue 的数据驱动视图机制导致 DOM 更新是异步的。当你修改了数据,试图立即去操作刚刚变化的 DOM 元素时,往往拿到的还是更新前的旧状态。$nextTick 的核心作用就是确保代码在下一次 DOM 更新循环结束之后执行,从而获取到最
Vue.js nextTick DOM更新
60 0
JavaScript Generator函数在异步流程控制中的应用
2026-04-25 11:18:21
JavaScript Generator函数在异步流程控制中的应用 JavaScript 中的异步操作(如网络请求、文件读写)通常使用回调函数或 Promise 处理。当业务逻辑复杂时,多层嵌套会导致代码难以阅读和维护。Generator 函数提供了一种能够暂停执行和恢复执行的机制,配合 Promi
JavaScript Generator函数 异步编程
59 0
JavaScript Promise.withResolvers简化Promise创建模式
2026-04-24 20:17:23
JavaScript Promise.withResolvers简化Promise创建模式 Promise.withResolvers 是 ECMAScript 2024 引入的一个静态方法,旨在解决传统 new Promise 构造函数在特定场景下的局限性。它允许将 promise 对象及其控制函
JS Promise 异步编程
68 0
JavaScript queueMicrotask与Promise.resolve().then的区别
2026-04-24 11:13:53
JavaScript queueMicrotask与Promise.resolve.then的区别 了解 JavaScript中的queueMicrotask和Promise.resolve.then都是用于调度微任务的API,它们都在当前脚本执行完毕后、浏览器重绘前执行。 认识 queueMicr
JavaScript 异步编程 微任务
60 0
Python concurrent.futures.as_completed按完成顺序获取结果
2026-04-24 03:28:59
Python concurrent.futures.ascompleted按完成顺序获取结果 在并发编程中,处理批量任务(如网络请求、文件读写或复杂计算)时,通常会遇到两个核心需求:一是加速执行(利用多线程或多进程并行),二是实时处理结果(谁先跑完先处理谁)。concurrent.futures.a
Python 并发编程 多线程
58 0
JavaScript async/await中try-catch捕获不到错误的情况
2026-04-23 22:20:17
JavaScript async/await中trycatch捕获不到错误的情况 JavaScript 中的 async/await 配合 trycatch 极大地简化了异步代码的错误处理,但在某些特定场景下,错误会“溜走”,导致 catch 块无法捕获。以下是导致这种情况的常见原因及修复步骤。 情
JS 异步编程 错误处理
55 0
Java CompletableFuture的orTimeout与completeOnTimeout超时处理
2026-04-23 16:15:29
Java CompletableFuture的orTimeout与completeOnTimeout超时处理 1. 基础概念介绍 创建一个基本的CompletableFuture实例是开始超时处理的第一步。CompletableFuture是Java 8引入的异步编程工具,它提供了丰富的API来处理
Java CompletableFuture 异步编程
55 0