All Projects → zboya → Golang_runtime_reading

zboya / Golang_runtime_reading

Licence: other
golang 1.10.2 runtime code reading - golang runtime源码分析。只有思考过,你才会印象深刻。

Programming Languages

go
31211 projects - #10 most used programming language
golang
3204 projects

Projects that are alternatives of or similar to Golang runtime reading

Golang Notes
Go source code analysis(zh-cn)
Stars: ✭ 3,137 (+698.22%)
Mutual labels:  source, runtime
Gsysint
Golang (as of 1.12.5) runtime internals that gives you an access to internal scheduling primitives. Park Gs, read IDs. (for learning purposes)
Stars: ✭ 44 (-88.8%)
Mutual labels:  goroutine, runtime
Codeeggdailyinterview
码个蛋每日面试题
Stars: ✭ 345 (-12.21%)
Mutual labels:  data-structures
Atomic queue
C++ lockless queue.
Stars: ✭ 373 (-5.09%)
Mutual labels:  data-structures
Anymethodlog
Log any method call of object in Objective-C
Stars: ✭ 361 (-8.14%)
Mutual labels:  runtime
Leetcode Rust
my leetcode solutions in rust
Stars: ✭ 345 (-12.21%)
Mutual labels:  data-structures
Programming Books
A collection of Programming books 📖
Stars: ✭ 367 (-6.62%)
Mutual labels:  data-structures
Technical Interview Prep
These are coding solutions for problems I study while preparing for technical interviews at tech companies
Stars: ✭ 335 (-14.76%)
Mutual labels:  data-structures
Java Algorithms Implementation
Algorithms and Data Structures implemented in Java
Stars: ✭ 3,927 (+899.24%)
Mutual labels:  data-structures
Schema
📐 Validating data structures against a given Schema.
Stars: ✭ 359 (-8.65%)
Mutual labels:  data-structures
Proalgos Cpp
C++ implementations of well-known (and some rare) algorithms, while following good software development practices
Stars: ✭ 369 (-6.11%)
Mutual labels:  data-structures
Crossbeam
Tools for concurrent programming in Rust
Stars: ✭ 4,180 (+963.61%)
Mutual labels:  data-structures
Dataviz
Build and Visualize data structures in Golang
Stars: ✭ 348 (-11.45%)
Mutual labels:  data-structures
Competitive Programming Repository
Competitive Programming templates that I used during the past few years.
Stars: ✭ 367 (-6.62%)
Mutual labels:  data-structures
Machine
Machine is a zero dependency library for highly concurrent Go applications. It is inspired by errgroup.Group with extra bells & whistles
Stars: ✭ 346 (-11.96%)
Mutual labels:  goroutine
Psl
PHP Standard Library - a modern, consistent, centralized, well-typed set of APIs for PHP programmers.
Stars: ✭ 329 (-16.28%)
Mutual labels:  data-structures
Megahit
Ultra-fast and memory-efficient (meta-)genome assembler
Stars: ✭ 343 (-12.72%)
Mutual labels:  data-structures
Interview Bit
Solutions to problems on Interview Bit
Stars: ✭ 353 (-10.18%)
Mutual labels:  data-structures
Roadiz
Roadiz is a polymorphic CMS based on a node system which can handle many types of services.
Stars: ✭ 365 (-7.12%)
Mutual labels:  source
Uwebsockets.js
μWebSockets for Node.js back-ends 🤘
Stars: ✭ 4,552 (+1058.27%)
Mutual labels:  runtime

初定方案

有任何理解错误的地方,还望指出

golang官网

目标

理解golang runtime的运行原理,重点掌握golang的调度,gc,内存分配,数据结构.

对于注释不理解的,欢迎提issue

目前的进度

  • 2018-08-05 已阅读完调度系统的大概源码
  • 2018-08-12 正在仔细阅读调度的源码
  • 2018-08-19 正在仔细阅读调度的源码
  • 2018-08-27 正在仔细阅读调度的源码
  • 2018-09-02 已仔细阅读完调度的源码,正在阅读gc的大概源码
  • 2018-09-09 正在阅读gc的大概源码
  • 2018-09-16 大概阅读完gc流程源码
  • 2018-09-24 开始详细阅读gc源码
  • 2018-10-13 理解mgc的注释和大概阅读gcStart
  • 2018-10-20 阅读gcMark准备和markroots扫描根对象的逻辑
  • 2018-10-27 阅读gc的栈扫描和消费标记队列
  • 2018-11-04 内存分配的注释 (@jingyugao)
  • 2018-11-25 简单看了一下系统调用如何调度
  • 2018-01-12 开始阅读内存分配
  • 2019-01-19 补充gc的整个流程和继续阅读内存分配
  • 2019-02-10 继续阅读内存分配
  • 2019-02-22 基本阅读完内存分配的流程,接下来阅读栈的分配
  • 2019-03-03 阅读栈管理的代码
  • 2019-03-18 基本阅读完stack的分配
  • 2019-03-30 阅读golang网络底层原理和Mutex的实现
  • 2019-04-08 简单阅读channel的实现
  • 2019-04-21 从头开始阅读调度系统,并开始编写调度实现文档
  • 2019-05-12 继续阅读调度系统,编写调度实现文档

微信群

想一起阅读的小伙伴可以加我微信sheepbao-520,加入阅读群 wechat

github地址

https://github.com/sheepbao/golang_runtime_reading

时间

每周日晚9:00-10:00

golang版本

go1.10.2

准备工作

  • 有一台能上网的电脑
  • 安装zoom软件,并注册
  • 装一个阅读golang源码的编译器或者ide,推荐vscode
  • 下载go1.10.2的源码

可以先阅读的资料

活动步骤

  • 线上用zoom共享屏幕,阅读golang runtime源码,一起讨论添加注释,尽量让每个人都理解
  • 提交结果到github

阅读的方式

  1. 选好一个主题,并查询资料阅读该主题的相关背景
  2. 大概浏览阅读相关源码
  3. 仔细阅读源码实现原理
  4. 最后再整理整个流程

暂定的主题

  1. goroutine调度实现
  2. 数据结构的实现
  3. 内存分配实现
  4. gc的实现
Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].