工欲善其事,必先知其所以然…
学习GPM调度之前,先看下源码部分的准备工作吧,不然一脸茫然的看源码,基本不会有太多的收获.

函数& 变量初识

阅读全文 »

前序

学go有一段时间了,最近总感觉忙碌无为,也该总结下前段时间读源码的一些心得和体会了。

GPM调度算是在Go中比较经典的了,有必要深入学习下。

Go GPM设计文档

GPM设计的由来

一个好的设计,总会伴随发现现有的问题,在解决的基础上考虑场景并提高扩展性,先来了解下Go为何要重新设计GPM这个模型:

阅读全文 »

最近在搞一个需求:html「文件」渲染成png/jpg;chrome不能装在服务器中,可以打成docker镜像。
说到这个,很多人肯定说很容易啊,chrome headless有现成的,直接用,它是不香么。
然而事情并没有这么简单;

难点:

1
2
3
4
1、服务器中不能装chrome
2、chrome必须打在docker里面
3、渲染效果要和在本地效果一样:图片不能丢失字体,不能失真。
4、不能启动新的服务
阅读全文 »

前序

好久没有更新了,不是不更新,最近感冒严重,一直没好,太影响身体了…「身体还是很重要的!」

当然了,在生病期间也看了很多东西,更多的思考了许多:人生规划的、如何学习技术、后续的生涯发展之类的。「思考的方式很多种,不建议去生病了才去思考.」

后续会更新一篇,主要是结合之前的成长和技术的壁垒来说说后续想怎么学,怎么发展,生涯规划吧。

不扯了,这篇主要想记录一些词汇,主要还是在阅读Go源码中的一些词汇,毕竟英文有点差,再不积累就更差了。

Words

全称

阅读全文 »

前序

平常coding时,偶尔会查看计算机的具体执行过程,那最基本的就是汇编了,了解汇编是调试过程中必不可少的,尤其是一些细节的处理方面.Go的汇编是Plan 9(贝尔实验室的产物),和汇编很类似。

如何得到汇编结果?

  • 官网文档
  • Google
3种方式:

第一种

阅读全文 »

进程这是个老生常谈的问题,当然我不是那个老生,我只是个loser。

今天用chrome,占用很多的内存和资源,查了查,说chrome是多进程的,于是就想了解下进程一些相关的内容。
主要从以下几个角度了解下进程:

  • 来源
  • 定义
  • 特征
  • 多进程如何工作?
  • 通信
阅读全文 »

今写代码时,传函数无意间想到一个问题,slice通过参数传递给函数,为何可以改变具体的值呢?

如何解决这个问题?

  • 官方查文档
  • 看源码
  • google看看有没有好的见解
  • 思考🤔+冥想🧘‍♂️

(ps:解决问题,主要不是看结果是怎么样的,主要是考虑问题的角度)

阅读全文 »

晚上折腾了下博客,稍微装饰了下,主要还是加了个评论吧,其它非常秀的插件就没有接入了,懒得折腾,好好写博客,内容才是精华。
记录下折腾史:

gitalk评论插件

步骤:

申请id和secret

阅读全文 »

上次说到rwmutex读写锁,其实就是加强了锁的粒度,区分读和写时不同的情况,核心思想:写优先于读。
这次来看看mutex,go中的锁是如何实现的,用一张图来概括整个流程:

阅读全文 »