├── .gitattributes ├── .gitignore ├── README.md ├── pictures ├── GPM.png ├── block.png ├── ctx-kv.png ├── d-w.png ├── defer.png ├── gc-less.png ├── gc-more.png ├── gc-process.gif ├── gc-root.png ├── gin.png ├── go-line.png ├── go-thread.png ├── gp-thread-blocking.png ├── java-thread.png ├── less32.png ├── load.png ├── map-get.png ├── memory-span.png ├── overflow.png ├── quad-heap.gif ├── ssa.png ├── stack-heap.png ├── sync-map.png └── y-w.png └── problems ├── array.md ├── curly-brackets-and-square-brackets.md ├── defer.md ├── error-handling.md ├── garbage-collector.md ├── gin.md ├── go-garbage-collector.md ├── go-memory-allocate.md ├── go-versions.md ├── godep.md ├── golang-sensitive-problem.md ├── gopath-and-goroot.md ├── how-context-works.md ├── how-goroutine-works.md ├── how-to-use-channel.md ├── map-in-go.md ├── more-sync.md ├── mutex.md ├── new-one-slice.md ├── package.md ├── panic-and-recover.md ├── return-multiple-values.md ├── slice-in-go.md ├── string.md ├── struct-interface-pointer.md ├── struct.md ├── swap-the-values-of-two-variables.md ├── sync-map.md ├── timer.md ├── type-assertion.md ├── use-new-or-make.md ├── waitgroup.md └── what-is-gpm-and-why-need-p.md /.gitattributes: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/weiwensangsang/golang-internal/HEAD/.gitattributes -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | 2 | *.DS_Store 3 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/weiwensangsang/golang-internal/HEAD/README.md -------------------------------------------------------------------------------- /pictures/GPM.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/weiwensangsang/golang-internal/HEAD/pictures/GPM.png -------------------------------------------------------------------------------- /pictures/block.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/weiwensangsang/golang-internal/HEAD/pictures/block.png -------------------------------------------------------------------------------- /pictures/ctx-kv.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/weiwensangsang/golang-internal/HEAD/pictures/ctx-kv.png -------------------------------------------------------------------------------- /pictures/d-w.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/weiwensangsang/golang-internal/HEAD/pictures/d-w.png -------------------------------------------------------------------------------- /pictures/defer.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/weiwensangsang/golang-internal/HEAD/pictures/defer.png -------------------------------------------------------------------------------- /pictures/gc-less.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/weiwensangsang/golang-internal/HEAD/pictures/gc-less.png -------------------------------------------------------------------------------- /pictures/gc-more.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/weiwensangsang/golang-internal/HEAD/pictures/gc-more.png -------------------------------------------------------------------------------- /pictures/gc-process.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/weiwensangsang/golang-internal/HEAD/pictures/gc-process.gif -------------------------------------------------------------------------------- /pictures/gc-root.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/weiwensangsang/golang-internal/HEAD/pictures/gc-root.png -------------------------------------------------------------------------------- /pictures/gin.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/weiwensangsang/golang-internal/HEAD/pictures/gin.png -------------------------------------------------------------------------------- /pictures/go-line.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/weiwensangsang/golang-internal/HEAD/pictures/go-line.png -------------------------------------------------------------------------------- /pictures/go-thread.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/weiwensangsang/golang-internal/HEAD/pictures/go-thread.png -------------------------------------------------------------------------------- /pictures/gp-thread-blocking.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/weiwensangsang/golang-internal/HEAD/pictures/gp-thread-blocking.png -------------------------------------------------------------------------------- /pictures/java-thread.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/weiwensangsang/golang-internal/HEAD/pictures/java-thread.png -------------------------------------------------------------------------------- /pictures/less32.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/weiwensangsang/golang-internal/HEAD/pictures/less32.png -------------------------------------------------------------------------------- /pictures/load.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/weiwensangsang/golang-internal/HEAD/pictures/load.png -------------------------------------------------------------------------------- /pictures/map-get.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/weiwensangsang/golang-internal/HEAD/pictures/map-get.png -------------------------------------------------------------------------------- /pictures/memory-span.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/weiwensangsang/golang-internal/HEAD/pictures/memory-span.png -------------------------------------------------------------------------------- /pictures/overflow.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/weiwensangsang/golang-internal/HEAD/pictures/overflow.png -------------------------------------------------------------------------------- /pictures/quad-heap.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/weiwensangsang/golang-internal/HEAD/pictures/quad-heap.gif -------------------------------------------------------------------------------- /pictures/ssa.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/weiwensangsang/golang-internal/HEAD/pictures/ssa.png -------------------------------------------------------------------------------- /pictures/stack-heap.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/weiwensangsang/golang-internal/HEAD/pictures/stack-heap.png -------------------------------------------------------------------------------- /pictures/sync-map.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/weiwensangsang/golang-internal/HEAD/pictures/sync-map.png -------------------------------------------------------------------------------- /pictures/y-w.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/weiwensangsang/golang-internal/HEAD/pictures/y-w.png -------------------------------------------------------------------------------- /problems/array.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/weiwensangsang/golang-internal/HEAD/problems/array.md -------------------------------------------------------------------------------- /problems/curly-brackets-and-square-brackets.md: -------------------------------------------------------------------------------- 1 | # Brackets -------------------------------------------------------------------------------- /problems/defer.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/weiwensangsang/golang-internal/HEAD/problems/defer.md -------------------------------------------------------------------------------- /problems/error-handling.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/weiwensangsang/golang-internal/HEAD/problems/error-handling.md -------------------------------------------------------------------------------- /problems/garbage-collector.md: -------------------------------------------------------------------------------- 1 | fixme: not start -------------------------------------------------------------------------------- /problems/gin.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/weiwensangsang/golang-internal/HEAD/problems/gin.md -------------------------------------------------------------------------------- /problems/go-garbage-collector.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/weiwensangsang/golang-internal/HEAD/problems/go-garbage-collector.md -------------------------------------------------------------------------------- /problems/go-memory-allocate.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/weiwensangsang/golang-internal/HEAD/problems/go-memory-allocate.md -------------------------------------------------------------------------------- /problems/go-versions.md: -------------------------------------------------------------------------------- 1 | ### Versions -------------------------------------------------------------------------------- /problems/godep.md: -------------------------------------------------------------------------------- 1 | # Godep -------------------------------------------------------------------------------- /problems/golang-sensitive-problem.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/weiwensangsang/golang-internal/HEAD/problems/golang-sensitive-problem.md -------------------------------------------------------------------------------- /problems/gopath-and-goroot.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/weiwensangsang/golang-internal/HEAD/problems/gopath-and-goroot.md -------------------------------------------------------------------------------- /problems/how-context-works.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/weiwensangsang/golang-internal/HEAD/problems/how-context-works.md -------------------------------------------------------------------------------- /problems/how-goroutine-works.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/weiwensangsang/golang-internal/HEAD/problems/how-goroutine-works.md -------------------------------------------------------------------------------- /problems/how-to-use-channel.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/weiwensangsang/golang-internal/HEAD/problems/how-to-use-channel.md -------------------------------------------------------------------------------- /problems/map-in-go.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/weiwensangsang/golang-internal/HEAD/problems/map-in-go.md -------------------------------------------------------------------------------- /problems/more-sync.md: -------------------------------------------------------------------------------- 1 | fixme: not start -------------------------------------------------------------------------------- /problems/mutex.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/weiwensangsang/golang-internal/HEAD/problems/mutex.md -------------------------------------------------------------------------------- /problems/new-one-slice.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/weiwensangsang/golang-internal/HEAD/problems/new-one-slice.md -------------------------------------------------------------------------------- /problems/package.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/weiwensangsang/golang-internal/HEAD/problems/package.md -------------------------------------------------------------------------------- /problems/panic-and-recover.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/weiwensangsang/golang-internal/HEAD/problems/panic-and-recover.md -------------------------------------------------------------------------------- /problems/return-multiple-values.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/weiwensangsang/golang-internal/HEAD/problems/return-multiple-values.md -------------------------------------------------------------------------------- /problems/slice-in-go.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/weiwensangsang/golang-internal/HEAD/problems/slice-in-go.md -------------------------------------------------------------------------------- /problems/string.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/weiwensangsang/golang-internal/HEAD/problems/string.md -------------------------------------------------------------------------------- /problems/struct-interface-pointer.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/weiwensangsang/golang-internal/HEAD/problems/struct-interface-pointer.md -------------------------------------------------------------------------------- /problems/struct.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/weiwensangsang/golang-internal/HEAD/problems/struct.md -------------------------------------------------------------------------------- /problems/swap-the-values-of-two-variables.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/weiwensangsang/golang-internal/HEAD/problems/swap-the-values-of-two-variables.md -------------------------------------------------------------------------------- /problems/sync-map.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/weiwensangsang/golang-internal/HEAD/problems/sync-map.md -------------------------------------------------------------------------------- /problems/timer.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/weiwensangsang/golang-internal/HEAD/problems/timer.md -------------------------------------------------------------------------------- /problems/type-assertion.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/weiwensangsang/golang-internal/HEAD/problems/type-assertion.md -------------------------------------------------------------------------------- /problems/use-new-or-make.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/weiwensangsang/golang-internal/HEAD/problems/use-new-or-make.md -------------------------------------------------------------------------------- /problems/waitgroup.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/weiwensangsang/golang-internal/HEAD/problems/waitgroup.md -------------------------------------------------------------------------------- /problems/what-is-gpm-and-why-need-p.md: -------------------------------------------------------------------------------- 1 | # What is GPM and Why need P? --------------------------------------------------------------------------------