协程 共 13 篇文章

Python协程Asyncio中Task取消信号的传递与处理
2026-05-13 09:19:37
Python协程Asyncio中Task取消信号的传递与处理 在Asyncio编程中,Task(任务)是协程的载体。当需要停止一个正在运行的协程时,就需要用到Task的取消机制。理解并正确处理Task的取消信号,是编写健壮异步程序的关键。 1. 理解Task取消 Task取消不是强制终止,而是向协程
Python 协程 Asyncio
43 0
Go语言sync.WaitGroup的Add和Done不匹配导致死锁
2026-05-06 00:19:44
Go语言sync.WaitGroup的Add和Done不匹配导致死锁 Go 语言中的 sync.WaitGroup 是用于等待一组 Goroutine 完成执行的同步原语。死锁通常发生在 Add 增加的计数器与 Done 减少的计数器数量不一致,或者 Wait 被调用时计数器非零的情况下。解决此问题
Go语言 死锁 并发编程
38 0
Python asyncio.wait_for对协程设置超时并取消
2026-05-04 21:25:36
Python asyncio.waitfor对协程设置超时并取消 在编写异步程序时,经常会遇到外部请求响应慢或 IO 操作卡住的情况。如果不做处理,这些挂起的协程会无限期占用资源。asyncio.waitfor 提供了一种机制,强制限制协程的运行时间。一旦超时,它会自动取消协程并抛出异常。 以下介绍
Python asyncio 协程
48 0
Go语言Goroutine栈的扩容与缩容机制
2026-05-01 19:28:25
Go语言Goroutine栈的扩容与缩容机制 Go语言的Goroutine(协程)之所以轻量,核心在于其内存占用极小。与操作系统线程动辄几MB的固定栈空间不同,Goroutine的栈空间是动态的,初始值非常小,并能根据需要进行伸缩。理解这一机制,有助于编写高性能且避免内存溢出的程序。 1. 理解初始
Go语言 协程 栈扩容
42 0
Python asyncio.Event在协程间事件通知的用法
2026-04-29 01:15:27
asyncio.Event 是 Python asyncio 库中用于协程间简单通信的同步原语。它的作用类似于一个线程安全的标志位,允许一个或多个协程等待某个事件发生,直到另一个协程将该事件标志位设为“真”。这就好比比赛中的发令枪,裁判(主控协程)鸣枪(设置事件),所有运动员(等待协程)听到枪响后同
Python asyncio 协程
68 0
C++ std::generator协程生成器的惰性求值
2026-04-23 19:27:10
C++ std::generator协程生成器的惰性求值 C++23 引入了 std::generator,这是标准库中第一个直接支持协程的容器适配器。与传统的容器(如 std::vector)不同,std::generator 的核心机制是“惰性求值”。这意味着它不会一次性计算并存储所有数据,而是
C++23 协程 生成器
41 0
Go语言Goroutine泄漏的五种常见原因与pprof排查
2026-04-20 06:27:08
Go语言Goroutine泄漏的五种常见原因与pprof排查 Goroutine 泄漏是 Go 语言开发中导致内存占用持续飙升的最常见原因之一。当一个 Goroutine 被创建却无法退出,它占用的栈内存和堆内存引用将永远无法被垃圾回收器回收。本文将直接介绍如何使用 pprof 工具定位泄漏,并剖析
Go语言 协程 泄漏
66 0
Go 并发模式:worker pool 实现
2026-04-19 03:27:07
Go 并发模式:worker pool 实现 处理高并发任务时,无限制地创建 goroutine 会导致系统资源耗尽。Worker Pool(工作池)模式通过固定数量的 Worker 协同处理任务队列,既能利用并发优势,又能有效控制系统负载。以下是具体实现步骤。 理解 Worker Pool 的工作
Go语言 并发编程 工作池
51 0
Python 事件循环:asyncio.get_event_loop() 的使用
2026-04-13 07:24:12
Python 事件循环:asyncio.geteventloop 的使用 在 Python 异步编程中,事件循环是核心调度机制。asyncio.geteventloop 曾是获取当前事件循环的标准方法,但在 Python 3.10 及更高版本中已被标记为废弃,并推荐使用 asyncio.run。为了
Python编程 异步编程 事件循环
59 0
Python 协程任务:asyncio.create_task() 与 gather()
2026-04-06 12:16:56
Python 协程任务:asyncio.createtask 与 gather Python 的 asyncio 库通过协程实现了并发编程,但在实际开发中,如何正确调度和等待这些协程是核心难点。asyncio.createtask 和 asyncio.gather 是两个最常用的调度工具,前者负责将
Python asyncio 协程
73 0
Python 异步IO:aiohttp 与 asyncio 结合
2026-04-05 16:38:48
Python 异步 IO:aiohttp 与 asyncio 结合 现代 Web 应用对并发处理能力的要求越来越高。传统的同步编程模型在处理大量 I/O 操作时,往往会让程序陷入"等待"的困境——CPU 明明在空转,却只能眼巴巴地等着网络请求返回结果。异步 IO 正是为了解决这一痛点而生,它允许程序
Python 异步IO asyncio
67 0
Python 异步IO:asyncio 事件循环与任务管理
2026-04-02 16:40:17
Python 异步IO:asyncio 事件循环与任务管理 Python 的 asyncio 模块让你能用协程(coroutine)高效处理大量 I/O 密集型任务,比如网络请求、文件读写等。它的核心是事件循环(event loop),负责调度和运行协程。理解事件循环和任务(Task)的管理机制,是
Python异步 asyncio 事件循环
81 0
Python 异步生成器:async for 循环的使用
2026-04-02 05:30:11
Python 异步生成器:async for 循环的使用 Python 中的 async for 循环用于遍历异步可迭代对象(asynchronous iterable),最常见的是异步生成器(asynchronous generator)。它允许你在等待 I/O 操作(如网络请求、文件读取)的同时
Python 异步生成器 asyncfor
67 0