并发
已收录文章:105篇
-
Golang · Go问答 | 4星期前 | 并发 · channel · range · Close · Go问答 · 并发退出 Channel关闭 Go问答 close channel range退出 发送方关闭Go channel 关闭后仍然可以把缓冲区里的值读完,再继续读取会得到元素类型的零值和 ok=false;但关闭后的 channel 不能再写入,也不能重复关闭。真正安全的关键是让发送方统一负责关闭,并让接收方用 range 或 ok 值退出。427 收藏
-
Golang · Go问答 | 1个月前 | 并发 · channel · select · 性能排查 · Go问答 · select Go channel context default CPU飙高 忙等循环 tickerGo select 里的 default 会在没有 channel 就绪时立即返回;如果外层套着无限 for,就会形成忙等循环,让 CPU 空转。更稳的写法是阻塞等待、用 ticker 控制检查频率,并用 context 处理退出。438 收藏
-
文章 · 常见问题 | 1个月前 | 并发 · map · go · sync.Map · Goroutine RWMutex sync.Map Go map并发写 concurrent map writes 竞态检测围绕 Go map 并发写 panic,按高并发场景解释为什么共享 map 会崩溃,并给出加锁、分片 map、sync.Map 和单写协程的取舍、验证信号与上线检查清单。123 收藏
-
本文回答 Go 普通 map 并发读写为什么会报错,解释常见误区,并通过互斥锁、sync.Map、race 检查和封装访问给出可落地的选择方法。418 收藏
-
环境:MySQL8.0.301 事务基本概念1.1 基本概念什么是事务:是可以提交或回滚的原子工作单元,它是由一个或多个操作形成的一组操作单元。事务处理的原则:保证所有的操作都作为 一个工作单元477 收藏
-
更难出现goroutine泄漏处理panic更友好并发代码可读性高 从简介上看主要封装功能如下: 对waitGroup进行封装,避免了产生大量重复代码,并且也封装recover,安全性更高提供panics.Catcher封装recover逻458 收藏
-
问题内容 这个程序很简单,作用也很明显,就是打印20个素数。 但是。。。怎么做到的。。。 要被逼疯了。。。 package main import ( . "fmt" ) func Generate(ch chan<- int) { for i := 2; ; i++ {192 收藏
-
引言 上一部分主要写了锁,本篇主要介绍Channel channel是Go中非常重要的一个数据类型,它和goroutine紧密相连,是Go的CSP并发模型的重要体现。 CSP CSP 是通信顺序进程(Communicating Sequential Process)417 收藏
-
问题内容func (client *Client) receive() { var err error for err == nil { var h codec.Header if err = client.cc.ReadHeader(&h); err != nil { break } call := client.removeCall(h.Seq) switch411 收藏
-
1. 并发安全 package main import ( "fmt" "sync" ) var ( sum int wg sync.WaitGroup ) func test() { for i := 0; i < 5000000; i++ { sum += 1 } wg.Done() } func main() { // 并发和安全锁 wg.Add(178 收藏
-
优雅的并发编程范式,完善的并发支持,出色的并发性能是 Go语言区别于其他语言的一大特色。使用 Go语言开发服务器程序时,就需要对它的并发机制有深入的了解。并发基础回到在 Windows 和 Li197 收藏
-
当进行和 Go语言有关讨论的时候,经常听到人们抛出 CSP 这个缩写。在某些环境下 CSP 经常被赞美成 Go语言成功的原因以及并发编程的“万能钥匙”。它让不知道 CSP 的人开始认为计算机科470 收藏