• 一文带你解密 Go 语言之通道 channel

    一文带你解密 Go 语言之通道 channel

    大家好,我是煎鱼。今天这篇文章主要是针对 Go channel 的重点分析,一开始写的时候以为范围不会太大,但洋洋洒洒还是写破了万字,成为了一篇覆盖面较广和有一定深度的长文分析。大家觉得不错的话,欢迎关注煎鱼和三连一波 ✍️。接下来和煎鱼一起正式开始 Go channel 的学习之旅!Go 语言中的一大利器那就是能够非常方便的使用 go ... 全文》

    Golang 1年前 | touch
  • go 实现数字字母交替打印并优雅关闭channel

    实现一个交替打印字母和数字的简单程序,呈现的效果是:a1b2c3d4e5f6g7h8i9j10k11l12m13n14o15p16q17r18s19t20u21v22w23x24y25z26这个效果其实有很多种写法,现在选取一个简单的写法,通常的写法是让两个协程交替打印,用chan来阻塞通知,但是由于大部分的demo都没有考虑优雅退出的问题,这次的demo添... 全文》

    Golang 1年前 | touch
  • Go 群友提问:Goroutine 数量控制在多少合适,会影响 GC 和调度?

    Go 群友提问:Goroutine 数量控制在多少合适,会影响 GC 和调度?

    大家好,我是煎鱼。前几天在读者交流群里看到一位小伙伴,发出了一个致命提问,那就是:“单机的 goroutine 数量控制在多少比较合适?”。也许你和群内小伙伴第一反应一样,会答复 “控制多少,我觉得没有定论”。紧接着延伸出了更进一步的疑惑:“goroutine 太多了会影响 gc 和调度吧,主要是怎么预算这个数是合理的呢?”这是本文要进行探讨的主体,因此本文... 全文》

    Golang 1年前 | touch
  • GMP模型

    GMP模型

    1.什么是G M P?G:gorotine(协程)M:machine(内核线程)P:processor(调度器)2.什么是GMP模型?GMP的发展:GM模型+全局队列的模式M:1 = 内核线程:协程go 1.1版本之前时候过使用的是GM模型+全局队列的模式。新建一个协程G的时候会放入全局队列中,每次执行一个协程G的时候,内核线程M会从全局队列中获取一个协程G... 全文》

    Golang 1年前 | touch
  • Go 面试题: new 和 make 是什么,差异在哪?

    大家好,我是煎鱼。在 Go 语言中,有两个比较雷同的内置函数,分别是 new 和 make 方法,其主要用途都是用于分配相应类型的内存空间。看上去 new 和 make 都是分配内存的,那他们有什么区别呢?这个细节点也成为了不少 Go 语言工程师的面试题之一,值得大家一看。在这篇... 全文》

    Golang 1年前 | touch
  • golang后端动态生成图片、一文搞懂image/draw使用、一张图片粘贴到另一张图片上、根据url获取图片内容、在图片周围画线、invalidJPEGformat: missingSOImarke

    golang后端动态生成图片、一文搞懂image/draw使用、一张图片粘贴到另一张图片上、根据url获取图片内容、在图片周围画线、invalidJPEGformat: missingSOImarke

    后端动态生成图片、在图片上写文字、将另一张图片贴到模板图片上、图片生成边框最近做项目,遇到一个需求,在后端根据模板文件动态的生成图片然后返回给前端,原以为是一个很简单的需求,但在此过程中遇到了很多的坑,在全网也没有找到一篇合适的博客来讲清楚这件事,特此记录。首先准备一张模板图片:既然要写字,肯定要用到字体,字体我们可以从windows中获取亦可以到网上下载,... 全文》

    Golang 1年前 | touch
  • 1