goroutine 共 8 篇文章

Go recover 为什么只能拦截当前 Goroutine 的 panic 而无法跨协程
2026-05-24 15:14:21
Go recover 为什么只能拦截当前 Goroutine 的 panic 而无法跨协程 理解 panic 与 recover 的本质 思考一个场景:你和同事各自负责独立的项目模块,你在工作中遇到了一个无法解决的致命错误(panic)。你需要的是在自己负责的范围内尝试修复或妥善处理这个错误(rec
Go语言 panic机制 recover机制
4 0
Go语言通道Channel关闭后读取的零值行为解析
2026-04-27 14:14:32
Go语言通道Channel关闭后读取的零值行为解析 创建 Go语言中的通道Channel是实现goroutine之间通信的核心机制。理解通道关闭后的行为对于编写高效的并发程序至关重要。 Go语言通道基础 定义 通道是Go语言中用于在goroutine之间传递数据的管道,是类型安全的,只能传输特定类型
Go通道 并发编程 零值行为
50 0
Go语言Goroutine调度器的GMP模型与work stealing
2026-04-24 16:18:01
Go语言Goroutine调度器的GMP模型与work stealing 深入理解 Go语言的并发模型,首先要了解其核心的Goroutine调度机制。与传统操作系统线程不同,Go使用自己的轻量级线程实现,其调度器设计更为高效。 1. 认识 GMP模型基本结构 Go语言的调度器采用GMP模型,由三个主
Go并发 GMP模型 调度器
56 0
Go语言runtime.GOMAXPROCS对Goroutine并行度的影响
2026-04-22 15:17:18
Go语言runtime.GOMAXPROCS对Goroutine并行度的影响 理解GOMAXPROCS的基本概念 理解 runtime.GOMAXPROCS 是Go语言中控制并行度的关键参数。这个函数决定了Go程序同时运行多少操作系统线程来执行用户代码。默认情况下,GOMAXPROCS 的值等于逻辑
Go语言 GOMAXPROCS 并行处理
39 0
Go 映射:sync.Map 与并发安全
2026-04-03 18:50:18
Go 映射:sync.Map 与并发安全 Go 语言中的内置 map 类型在多个 goroutine 同时读写时会发生数据竞争(data race),导致程序崩溃或结果不可预测。为了解决这个问题,Go 标准库提供了 sync.Map —— 一个专为并发场景设计的线程安全映射类型。本文将手把手教你如何
Go 并发安全 sync.Map
76 0
Go 并发编程:goroutine 与 channel
2026-04-03 18:18:18
Go 并发编程:goroutine 与 channel Go 语言的并发模型基于两个核心概念:goroutine 和 channel。goroutine 是轻量级线程,由 Go 运行时自动管理;channel 是 goroutine 之间通信的管道,用于安全地传递数据。掌握这两者,就能高效编写并发程
Go 并发编程 goroutine
61 0
Go语言Select语句在超时控制中的实现模式
2026-04-02 22:36:33
Go语言Select语句在超时控制中的实现模式 Go语言通过select语句实现对多个通道(channel)操作的监听,是并发编程中处理异步事件的核心机制。其中一种高频应用场景是为操作设置超时限制,防止程序无限等待。这种模式简洁、高效,且无需额外依赖。 基本超时控制模式 最典型的超时控制通过time
Go语言 select语句 超时控制
57 0
Go 条件变量:sync.Cond 与等待通知
2026-04-02 10:26:18
Go 条件变量:sync.Cond 与等待通知 Go 语言的 sync 包提供了多种同步原语,其中 sync.Cond 是一个用于协调 goroutine 之间“等待通知”行为的条件变量。它常用于解决多个 goroutine 需要等待某个共享状态发生变化后再继续执行的问题。 何时使用 sync.Co
Go sync.Cond 条件变量
51 0