并发
已收录文章:146篇
-
业务描述 这个接口的作用是给会员发多张券码。涉及到4张主体,分别是:用户,券,券码,用户领取记录。 下面是改造前的伪代码。 主要是因为查出券码那行存在并发安全问题,多个线程拿501 收藏
-
Go 的 sync 包双返回值 Once 辅助函数不只是把初始化代码执行一次,还会把第一次返回的值和错误一起缓存。本文用并发初始化配置的场景说明它与普通 Once 的边界。499 收藏
-
其实golang用一个函数可以构建一个并发队列,现在编写一个灵活可控的队列程序 先定义一个工作 type Worker struct { ID int RepJobs chan int64 SM *SM quit chan bool } 包含了workid和执497 收藏
-
从 fatal error: concurrent map read and map write 的现场出发,演示如何用竞态检测确认问题,再比较读写锁、单 goroutine 所有权和分片 map 的适用边界。496 收藏
-
Go语言程序可以使用通道进行多个 goroutine 间的数据交换,但这仅仅是数据同步中的一种方法。通道内部的实现依然使用了各种锁,因此优雅代码的代价是性能。在某些轻量级的场合,原子访问495 收藏
-
通过上一节《Go语言goroutine》的学习,关键字 go 的引入使得在 Go语言中并发编程变得简单而优雅,但我们同时也应该意识到并发编程的原生复杂性,并时刻对并发中容易出现的问题保持警惕。事495 收藏
-
前面的例子创建的都是无缓冲通道。使用无缓冲通道往里面装入数据时,装入方将被阻塞,直到另外通道在另外一个 goroutine 中被取出。同样,如果通道中没有放入任何数据,接收方试图从通道491 收藏
-
文章 · python教程 | 2个月前 | 并发 · python · 故障排查 · asyncio · Python asyncio.create_task Python 任务取消 asyncio CancelledError Python 异步任务收尾Python 异步接口超时后,后台任务仍在访问数据库或写文件,常见原因不是 cancel() 失效,而是任务没有被保存、取消没有被等待,或协程吞掉了 CancelledError。本文用一个可复现的 asyncio 故障现场拆开这条链路,并给出带超时、回收和日志核对的改法。490 收藏
-
文章 · python教程 | 1个月前 | 并发 · 线程池 · python · Python 队列 超时 背压 concurrent.threading_pool ThreadPoolManager 任务洪峰ThreadPoolManager 常见误区是“把任务都扔进去”,但当 submit 激增时会出现排队膨胀、内存抖动和超时误判。本文给出可落地的限流策略。481 收藏
-
Go 服务把 regexp.Compile 放进请求函数后,正则本身没变,延迟却会随并发上升。本文用基准对比请求内编译、包级预编译和受控缓存,解释编译成本、并发读写与动态规则的边界。479 收藏
-
环境:MySQL8.0.301 事务基本概念1.1 基本概念什么是事务:是可以提交或回滚的原子工作单元,它是由一个或多个操作形成的一组操作单元。事务处理的原则:保证所有的操作都作为 一个工作单元477 收藏
-
Python logging 的 QueueHandler 能把业务线程和日志写入解耦,但队列满、监听线程退出顺序不对时会出现丢日志。本文拆开背压处理、队列容量和优雅退出的边界,给出可复现的验收代码。473 收藏