标签:并发编程

共 110 篇文章

Java ThreadPoolExecutor.CallerRunsPolicy的饱和处理风险

Java ThreadPoolExecutor.CallerRunsPolicy的饱和处理风险 CallerRunsPolicy 是 Java 线程池中一种看似“温柔”的饱和拒绝策

# Java # 线程池 # 拒绝策略
2026-05-01 209 0

Go语言sync.Cond与channel在条件等待中的选择

Go语言sync.Cond与channel在条件等待中的选择 在Go语言的并发编程中,让一个Goroutine等待特定条件成立是常见需求。Go标准库提供了sync.Cond(条件变

# Go语言 # 并发编程 # sync.Cond
2026-04-30 161 0

Python concurrent.futures.ProcessPoolExecutor的进程复用机制

Python concurrent.futures.ProcessPoolExecutor的进程复用机制 利用多进程进行并行计算时,频繁地创建和销毁进程会消耗大量系统资源,导致程序

# Python # 多进程 # 进程池
2026-04-30 169 0

Java volatile为什么能禁止指令重排序:内存屏障原理

Java volatile为什么能禁止指令重排序:内存屏障原理 在Java多线程编程中,代码的执行顺序往往并不等同于源代码的编写顺序。编译器和处理器为了优化性能,会对指令进行重排序

# Java # volatile # 指令重排序
2026-04-29 198 0

Go语言channel的select与default的非阻塞发送实现

在 Go 语言并发编程中,直接向 channel 发送数据通常会阻塞当前 goroutine,直到接收者准备好。这种机制虽然保证了数据同步,但在某些高吞吐或对延迟敏感的场景下,我们

# Go语言 # 并发编程 # Channel
2026-04-29 153 0

Go语言HTTP请求默认不超时导致Goroutine泄漏的问题

Go语言HTTP请求默认不超时导致Goroutine泄漏的问题 Go语言标准库中的 net/http 包极其易用,特别是通过 http.Get 或 http.Post 等便捷函数发

# Go语言 # HTTP请求 # Goroutine泄漏
2026-04-29 157 0

Java ThreadLocal在线程池复用时的内存泄漏风险

Java ThreadLocal在线程池复用时的内存泄漏风险 Java中的 ThreadLocal 是实现线程隔离的利器,但在使用线程池的场景下,如果处理不当,它会变成内存泄漏的元

# Java # 线程池 # 内存泄漏
2026-04-29 200 0

Python asyncio.Event在协程间事件通知的用法

asyncio.Event 是 Python asyncio 库中用于协程间简单通信的同步原语。它的作用类似于一个线程安全的标志位,允许一个或多个协程等待某个事件发生,直到另一个协

# Python # asyncio # 协程
2026-04-29 202 0

Java线程池为什么不建议用Executors创建?参数配置的坑

Java线程池为什么不建议用Executors创建?参数配置的坑 在Java并发编程中,线程池是提升性能、管理资源的重要工具。然而,很多开发者在创建线程池时,习惯直接使用 Exec

# Java # 线程池 # 并发编程
2026-04-27 193 0

Go语言通道Channel关闭后读取的零值行为解析

Go语言通道Channel关闭后读取的零值行为解析 创建 Go语言中的通道Channel是实现goroutine之间通信的核心机制。理解通道关闭后的行为对于编写高效的并发程序至关重

# Go通道 # 并发编程 # 零值行为
2026-04-27 174 0

Go语言sync.Map的LoadAndDelete原子操作实现

Go语言sync.Map的LoadAndDelete原子操作实现 在并发编程中,从 map 中读取一个键值对并立即将其删除是一个常见的需求。如果使用普通的 map 加锁操作,通常需

# Go语言 # sync.Map # 并发编程
2026-04-27 168 0

Java ThreadPoolExecutor的prestartCoreThread预启动机制

Java ThreadPoolExecutor的prestartCoreThread预启动机制 在Java并发编程中,ThreadPoolExecutor 默认采用“懒加载”策略来

# Java # 并发编程 # 线程池
2026-04-26 180 0

Java StructuredTaskScope结构化并发的子任务管理

Java StructuredTaskScope结构化并发的子任务管理 Java 21 正式推出了结构化并发,它通过 StructuredTaskScope 将一组相关的子任务视为

# Java # StructuredTaskScope # 结构化并发
2026-04-26 174 0

Go语言context.WithCancel的取消函数调用幂等性

Go语言context.WithCancel的取消函数调用幂等性 在Go语言的并发编程中,context 包是控制goroutine生命周期的核心工具。许多开发者在处理错误退出或超

# Go语言 # 并发编程 # Context包
2026-04-26 181 0

Go语言atomic.Value在并发场景下的类型安全存储

Go语言atomic.Value在并发场景下的类型安全存储 在并发编程中,频繁使用互斥锁(sync.Mutex)会导致读写性能瓶颈,特别是在读多写少的场景下。Go 标准库中的 at

# Go语言 # 并发编程 # 类型安全
2026-04-25 164 0

Python asyncio.gather的return_exceptions异常处理模式

Python asyncio.gather的returnexceptions异常处理模式 asyncio.gather 是 Python 并发编程中用于批量运行协程的常用工具。默认

# Python # asyncio # 并发编程
2026-04-25 203 0

Go语言Race Detector在复杂并发场景下的误报排查

Go语言Race Detector在复杂并发场景下的误报排查 Go 语言自带的 Race Detector(竞态检测器)是基于 ThreadSanitizer(TSan)构建的动态

# Go语言 # 并发编程 # 数据竞争
2026-04-25 169 0

Java ReentrantLock的公平锁与非公平锁性能差异实测

Java ReentrantLock的公平锁与非公平锁性能差异实测 Java并发包中的ReentrantLock提供了两种锁获取模式:公平锁与非公平锁。了解两者的性能差异对于编写高

# Java # ReentrantLock # 并发编程
2026-04-25 180 0

Go语言sync.Map的Range遍历与普通map的性能对比

Go语言sync.Map的Range遍历与普通map的性能对比 在Go语言高并发编程中,选择合适的数据结构对性能至关重要。sync.Map 专为特定场景(如读多写少、Key集合稳定

# Go语言 # sync.Map # 性能对比
2026-04-24 169 0

Java线程的六种状态转换与sleep/wait/yield的区别

Java线程的六种状态转换与sleep/wait/yield的区别 Java多线程编程中,线程状态的控制是核心难点。理解线程的生命周期以及常用方法的区别,能够帮助我们编写出更高效、

# Java多线程 # 线程状态 # 并发编程
2026-04-24 181 0