作者|Russell Cohen 译者|张卫滨 本文通过 Java 和 Golang 在底层原理上的差异,分析了 Java 为什么只能创建数千个线程,而 Golang 可以有数百万的 Goroutines,并在上下文切换、栈大小方面对两者的实现原理进行了剖析。 很多有经验的工程师在使用基于 JVM ...
分类:
编程语言 时间:
2018-08-13 10:49:59
阅读次数:
200
多核处理器日益普及的现在很多代码都得和并发/并行打交道,对于内置了并发支持(goroutine)的golang来说并发编程是必不可少的一环。 链表是我们再熟悉不过的数据结构,在并发编程中我们也时长需要用到,今天我们就来看两种带锁的并发安全的单项链表。 方案一:粗粒度锁,完全锁住链表 方案一的做法是将 ...
分类:
其他好文 时间:
2018-08-11 23:21:32
阅读次数:
232
并发:逻辑上具备同时处理多个任务的能力(单核,上下文切换) 并行:物理上同一时刻执行多个并发任务(多核,互不影响) 进程退出并不会等并发任务执行结束,可用channel阻塞,然后发出退出信号 等待多个任务结束,使用sync.WaitGroup,通过设定计数器,让每个goroutine在退出前递减,直 ...
分类:
其他好文 时间:
2018-08-10 17:15:02
阅读次数:
185
划重点本文将从什么是 goroutine leak,如何检测以及常用的分析工具来介绍 PouchContainer 在 goroutine leak 方面的检测实践。0. 引言PouchContainer?是阿里巴巴集团开源的一款容器运行时产品,它具备强隔离和可移植性等特点,可用来帮助企业快速实现存量业务容器化,以及提高企业内部物理资源的利用率。
分类:
其他好文 时间:
2018-07-31 17:12:00
阅读次数:
171
2018-07-25 16:40:10 goroutine Go语言协程 定义 任何函数只需要加上go就能送给调度器运行 不需要在定义时区分是否是异步函数(这点是针对Python3.5引入的async def定义时说明自己是一个协程) 调度器在合适的点进行切换(非抢占式的,但切换点也不是任意的点,传 ...
分类:
其他好文 时间:
2018-07-25 17:42:26
阅读次数:
193
一、goroutine简介 goroutine是go语言中最为NB的设计,也是其魅力所在,goroutine的本质是协程,是实现并行计算的核心。goroutine使用方式非常的简单,只需使用go关键字即可启动一个协程,并且它是处于异步方式运行,你不需要等它运行完成以后在执行以后的代码。 二、goro ...
分类:
编程语言 时间:
2018-07-06 11:23:07
阅读次数:
274
golanggoroutine协程池Groutine Pool高并发 golanggoroutine协程池Groutine Pool高并发 并发(并行),一直以来都是一个编程语言里的核心主题之一,也是被开发者关注最多的话题;Go语言作为一个出道以来就自带 『高并发』光环的富二代编程语言,它的并发(并 ...
分类:
其他好文 时间:
2018-07-05 13:28:46
阅读次数:
193
Context通常被译作上下文,它是一个比较抽象的概念。在讨论链式调用技术时也经常会提到上下文。一般理解为程序单元的一个运行状态、现场、快照,而翻译中上下又很好地诠释了其本质,上下则是存在上下层的传递,上会把内容传递给下。在Go语言中,程序单元也就指的是Goroutine。 每个Goroutine在 ...
分类:
其他好文 时间:
2018-06-29 11:04:03
阅读次数:
183
2036119xxxxpanic: inconsistent poll.fdMutex goroutine 2041065 [running]:internal/poll.(*fdMutex).rwlock(0xc420090050, 0xc517305500, 0x1089b36) /usr/lo ...
分类:
其他好文 时间:
2018-06-29 01:13:27
阅读次数:
218