大彬

802
获赞数
9
关注数
3432
粉丝数
杭州
浙江大学 | 计算机
IP 属地未知
2018-11-10 加入
浏览 22.5k

公众号:Go语言充电站
二维码:https://segmentfault.com/img/remote/1460000017251062

2,870 声望|专家
全站排名超越 99.48% 用户
go
2.7k
channel
1.3k
并发
1.1k
concurrency
538
goroutine
418
黄金勋章
暂未获得该勋章
如何获得
白银勋章
暂未获得该勋章
如何获得
个人动态
  • 赞了文章2020-08-17
    Linux IO模式及 select、poll、epoll详解
    同步IO和异步IO,阻塞IO和非阻塞IO分别是什么,到底有什么区别?不同的人在不同的上下文下给出的答案是不同的。所以先限定一下本文的上下文。
  • 发布了文章2019-09-09
    Go内存分配那些事,就这么简单!
    原文链接:[链接] 新老朋友好久不见,我是大彬,这篇文章准备了很久,不是在拖延,而是中间做了一些其他事情,耽搁了一些。 这篇文章主要介绍Go内存分配和Go内存管理,会轻微涉及内存申请和释放,以及Go垃圾回收。 从非常宏观的角度看,Go的内存管理就是下图这个样子...
  • 发布了文章2019-09-09
    Go是如何实现protobuf的编解码的(2):源码
    原文链接:[链接] 这是一篇姊妹篇文章,浅析一下Go是如何实现protobuf编解码的: Go是如何实现protobuf的编解码的(1): 原理 Go是如何实现protobuf的编解码的(2): 源码 本编是第二篇。 前言 上一篇文章Go是如何实现protobuf的编解码的(1):原理中已经指出了Go语言数...
  • 发布了文章2019-09-09
    Go是如何实现protobuf的编解码的(1):原理
    原文链接:[链接] 这是一篇姊妹篇文章,浅析一下Go是如何实现protobuf编解码的: Go是如何实现protobuf的编解码的(1): 原理 Go是如何实现protobuf的编解码的(2): 源码 本编是第一篇。 Protocol Buffers介绍 Protocol buffers缩写为protobuf,是由Google创造的一种用...
  • 赞了文章2019-07-22
    从实践到原理,带你参透 gRPC
    gRPC 在 Go 语言中大放异彩,越来越多的小伙伴在使用,最近也在公司安利了一波,希望能通过这篇文章能带你一览 gRPC 的爱与恨。本文篇幅较长,希望你做好阅读准备,目录如下:
  • 发布了文章2019-05-18
    实战Go内存泄露
    最近解决了我们项目中的一个内存泄露问题,事实再次证明pprof是一个好工具,但掌握好工具的正确用法,才能发挥好工具的威力,不然就算你手里有屠龙刀,也成不了天下第一,本文就是带你用pprof定位内存泄露问题。
  • 发布了文章2019-04-15
    Go调度器系列(4)源码阅读与探索
    各位朋友,这次想跟大家分享一下Go调度器源码阅读相关的知识和经验,网络上已经有很多剖析源码的好文章,所以这篇文章不是又一篇源码剖析文章,注重的不是源码分析分享,而是带给大家一些学习经验,希望大家能更好的阅读和掌握Go调度器的实现。
  • 赞了文章2019-04-08
    【Go源码分析】Go scheduler 源码分析
    一个进程可以有多个线程,一般情况下固定2MB内存块来做栈,用来保存当前被调用/挂起的函数内部的变量,CPU在执行调度的时候切换的是线程,如果下一个线程也是当前进程的,就只有线程切换,“很快”就能完成;如果下一个线程不是当前的进程,就需要切换进程,这就得费点...
  • 赞了文章2019-04-08
    为什么遍历 Go map 是无序的?
    有的小伙伴没留意过 Go map 输出顺序,以为它是稳定的有序的;有的小伙伴知道是无序的,但却不知道为什么?有的却理解错误?今天我们将通过本文,揭开 for range map 的 “神秘” 面纱,看看它内部实现到底是怎么样的,输出顺序到底是怎么样?
  • 发布了文章2019-04-06
    Go调度器系列(3)图解调度原理
    如果你已经阅读了前2篇文章:《调度起源》和《宏观看调度器》,你对G、P、M肯定已经不再陌生,我们这篇文章就介绍Go调度器的基本原理,本文总结了12个主要的场景,覆盖了以下内容:
  • 赞了回答2019-04-05
    关于 Go 项目的工程化
    GitHub 上这个项目总结的不错 [链接] 准备用 go-kit + gin
  • 发布了文章2019-03-27
    Go调度器系列(2)宏观看调度器
    上一篇文章《Go语言高阶:调度器系列(1)起源》,学goroutine调度器之前的一些背景知识,这篇文章则是为了对调度器有个宏观的认识,从宏观的3个角度,去看待和理解调度器是什么样子的,但仍然不涉及具体的调度原理。
  • 发布了文章2019-03-10
    Go语言高阶:调度器系列(1)起源
    如果把语言比喻为武侠小说中的武功,如果只是会用,也就是达到四五层,如果用的熟练也就六七层,如果能见招拆招也得八九层,如果你出神入化,立于不败之地十层。
  • 赞了文章2019-03-07
    深入理解 Go map:初始化和访问元素
    从本文开始咱们一起探索 Go map 里面的奥妙吧,看看它的内在是怎么构成的,又分别有什么值得留意的地方? 第一篇将探讨初始化和访问元素相关板块,咱们带着疑问去学习,例如: 初始化的时候会马上分配内存吗? 底层数据是如何存储的? 底层是如何使用 key 去寻找数据...
  • 发布了文章2019-03-04
    深入理解channel:设计+源码
    channel是大家在Go中用的最频繁的特性,也是Go最自豪的特性之一,你有没有思考过: Why:为什么要设计channel? What:channel是什么样的? How:channel是如何实现的? 这篇文章,就来回答这3个问题。 channel解决什么问题? 在Golang诞生之前,各编程语言都使用多...
  • 赞了文章2019-02-25
    GO GC 垃圾回收机制
    在传统的系统级编程语言(主要指C/C++)中,程序员定义了一个变量,就是在内存中开辟了一段相应的空间来存值。由于内存是有限的,所以当程序不再需要使用某个变量的时候,就需要销毁该对象并释放其所占用的内存资源,好重新利用这段空间。在C/C++中,释放无用变量内...
  • 发布了文章2019-02-25
    Go进阶:反射3定律
    各位学习Go语言的朋友,周末好,这次跟大家聊一聊Go语言的一个高级话题:反射。 这篇文章是从我过去的学习笔记修改来的,内容主要来自Go Blog的一篇文章《The law of reflection》。 这篇文章主要介绍反射和接口的关系,解释内在的关系和原理。 反射来自元编程,指通...
  • 回答了问题2019-01-31
    “通道写完后,必须关闭通道,否则range遍历会出现死锁”这句话对吗?
    通道写完后,必须关闭通道,否则range遍历会出现死锁,请问这句话对吗?1)通道用完后必须关闭:✔️,因为,在长时间运行的程序中,不关闭通道是资源泄露。2)否则range遍历会出现死锁:不一定是死锁,只是你运行range的那个goroutine不退出而已。 比如这就死锁: {代...
  • 回答了问题2019-01-30
    如何在 golang 中开一个 goroutine 循环往缓冲通道写队列,另外开 5 个固定数量 goroutine 消费队列?
    我就不直接给答案,而是推荐一个好的example,这篇简短的文章是介绍worker pool,例子是3个goroutine向同1个消息队列写数据,1个协程(main协程)从消息队列读数据,顺序和你的问题是相反的,但本质是相同的,并且简单明了。
  • 发布了文章2019-01-27
    未来你是CTO还是架构师?
    春节就要到了,每到年末就非常适合总结、反思,思考过去一年的成长(就),过去一年的收获,过去一年的改变,所以接下来两三周的时间,我想给大家分享一些技术以外的思考。