golang GMP
写点东西还是难,果然还是搬运工来的轻松些。今天搬运点Golang的
GMP模型看看。最近在准备一篇Golang的GC实践。慢慢搞吧。
前言
Golang作为语言层面支持并发的语言,使用go可以让搬砖体验飞起。但是从直觉来说,事情并没有这么简单:从操作系统层面来说,进程和线程是操作系统认可的并行机制。协程以及Golang的所谓纤程是期望一堆程序员期望将操作系统的工作拿过来,以满足一些优化的效果。所以诸如Python的协程以及Golang的纤程,总是能够对应到操作系统认可的执行单元上。对于Python的协程还好理解一些,是严格运行在自己的线程里的,只是语言层面实现了线程内的上下文切换优化。所以对于CPU密集型的操作,仅使用协程是无法达到优化效果的:这种场景下Python会推荐多进程。相比起来,Golang的go野心更大一些:期望给用户以go作为接口,在语言内实现与操作系统调度单元的交互。Golang里实际的调度模型是GMP。
golang 封装
golang作为一种高级语言,实现了面向对象语言的封装、继承、多态的特性。本文简要介绍下golang面向对象的这些特性。
ratelimit服务流量限制
在日常的工作中,固定QPS或者固定并发数是常用的两个衡量系统容量时采用的流量控制手段。本文以Go语言高级编程 服务流量限制的内容为开端,对服务流量限制进行展开描述,同时对
Jmeter及golang ratelimit中的流量限制方法进行描述。
- 起因
- 漏桶法
- 令牌桶法
- Jmeter中流量吞吐控制
- golang ratelimit
org-mode使用备注
emacs! start org-mode! --org-mode使用备注
为了更好的
live in emacs,一款合适的日程管理工具总是需要的。在挣扎了若干次后,最终还是把org-mode这一优秀的日程管理工具捡起来了。本文简单记录下使用的方法。
org-mode介绍
在神的编辑器emacs的传说中,往往有org-mode的身影。虽然按照(org官网)orgmode官网的描述,org-mode并不仅限于在emacs中使用,如开始使用 Org 模式吧,在没有 Emacs 的情况下这篇文章就详细讲解了在vscode中使用org-mode的方式,但是配合emacs的万物皆系于kbd之上的使用习惯,org-mode确实能够发挥最大的功能。
org-mode的基本功能包括设置待办事项、设置待办的标签、查看日历、查看某一天的待办及进度。基本上,满足了对优秀日程管理工具的所有想象。
elscreen标签背景颜色
使用
emacs过程中,配合evil使用,按照tab的划分,将编辑、浏览、leetcode等任务划分到不同的tab便于切换及管理。美中不足的是,模拟标签的elscreen默认将其他标签的颜色设置成:background blue :foreground black的配色,每次切换任务时,都需要重复确认需要跳转到哪个标签,就比较麻烦了。查找了一下重置face-attribute的方法,备注下。
在初始文件的最后添加:
;; 选中标签设置为绿底黑字,其他标签为黄底黑字
(set-face-attribute 'elscreen-tab-other-screen-face nil
:background "yellow" :foreground "black")
(set-face-attribute 'elscreen-tab-current-screen-face nil
:background "green" :foreground "black")