学习
实践
活动
专区
工具
TVP
写文章
首页标签goroutine

#goroutine

Golang 协程/线程/进程 区别以及 GMP 详解

码仔janrs.com

**进程** 每个进程都有自己的独立内存空间,拥有自己独立的地址空间、独立的堆和栈,既不共享堆,亦不共享栈。一个程序至少有一个进程,一个进程至少有一个线程。进程...

4120

初学Go语言时常见的小坑:goroutine、panic和recover

博文视点Broadview

“recover是如何和defer搭上关系的?”在调用panic方法后,实际上runtime.gopanic方法处理的是当前goroutine上所挂载的._pa...

9710

Go调度系列--goroutine和调度器生命周期(三)

小许code

go 关键字创建 goroutine 时,被调用函数的返回值会被忽略,如果需要在 goroutine 中返回数据,可以通过channel把数据从 gorouti...

20330

Go调度系列--调度器实现原理(二)

小许code

Go 语言在并发编程方面有强大的能力,这离不开语言层面对并发编程的支持,Go调度的本质就是将 Goroutine (G)按照一定算法放到CPU上去执行。在上一篇...

12920

我在使用 Go 过程中犯过的低级错误

用户5166556

因为 goroutine 最终读取变量的时间是不确定的,从而 goroutine 中获取到变量的值不一定符合最初的预期。

17310

深入理解 goroutine 泄漏和避免泄漏的最佳实践

用户5166556

Go的奇妙之处在于,我们可以使用goroutines和channel轻松地执行并发任务。如果在生产环境中使用goroutines和channel,但是不了解它们...

15110

协程框架(libcopp)v2优化、自适应栈池和同类库的Benchmark对比

owent

腾讯 · 后台开发工程师 (已认证)

libcopp很早就实现完成了v2版本,现在迁移进atsf4g-co/tree/sample_solution以后也把v2分支正式并入了主干。原来的版本切出到v...

11510

使用go的并发性来解决Hilbert酒店问题

charlieroro

译自:Designing for Concurrency: the Hilbert’s Hotel Problem in Go,本文使用go的并发性来解决Hil...

14460

开心档之Go 并发

爱学iOS的小麦子

Go 允许使用 go 语句开启一个新的运行期线程, 即 goroutine,以一个不同的、新创建的 goroutine 来执行一个函数。 同一个程序中的所有 g...

10620

Go调度系列--GMP是什么?(一)

小许code

做为Go开发者基本上对GMP已经很熟悉,这是Go的核心内容,三个核心部分共同配合下让Go 调度器得以高效运转。结合之前我们对编译和启动流程的总结,现在就更容易从...

24540

errgroup 的基本使用

LinkinStar

我们在使用 go 编写代码的时候,在错误处理的时候,经常会写出很多 if err != nil ,其实有些时候我们可以使用一些技巧去避免,本文就来讨论两种常见的...

12220

简单的 for 循环也会踩的坑

crossoverJie

最近实现某个业务时,需要读取数据然后再异步处理;在 Go 中实现起来自然就比较简单,伪代码如下:

13010

编写一个接口压测工具

crossoverJie

前段时间有个项目即将上线,需要对其中的核心接口进行压测;由于我们的接口是 gRPC 协议,找了一圈发现压测工具并不像 HTTP 那么多。

16320

Go 里的超时控制也很简单

crossoverJie

日常开发中我们大概率会遇到超时控制的场景,比如一个批量耗时任务、网络请求等;一个良好的超时控制可以有效的避免一些问题(比如 goroutine 泄露、资源不释放...

13800

Go 中的 channel 与 Java BlockingQueue 的本质区别

crossoverJie

最近在实现两个需求,由于两者之间并没有依赖关系,所以想利用队列进行解耦;但在 Go 的标准库中并没有现成可用并且并发安全的数据结构;但 Go 提供了一个更加优雅...

20110

【Go】github.com/robfig/cron 源码阅读

JuneBao

robfig/cron/v3 是一个 Golang 的定时任务库,支持 cron 表达式。Cron 的源码真实教科书级别的存在(可能是我菜 ...),真的把低耦...

68630

【Go】Chan 的使用和源码解析

JuneBao

chan 是什么?为什么要 share memory by communicating?Chan 底层怎样实现?无缓冲 Chan 和 有缓冲 Chan 有什么不...

41530

【Go】sync.WaitGroup 源码阅读

JuneBao

没想到人家巧妙利用了数组连续内存和 int 精度丢失来存储和读取状态,我大意了,没有闪 ┗|`O′|┛ 嗷~~

13820

【Go】RWMutex 源码分析

JuneBao

读写锁相较于互斥锁有更低的粒度,它允许并发读,因此在读操作明显多于写操作的场景下能减少锁竞争的次数,提高程序效率。

12120

【Go】sync.Mutex 源码分析

JuneBao

互斥锁的锁状态由 state 这个 32 的结构表示,这 32 位会被分成两部分:

12510

扫码关注腾讯云开发者

领取腾讯云代金券