Golang使用系列---- Gc

以下是Golang GC算法的里程碑:

v1.1 STW(停止所有运行时)
v1.3 Mark(标记) STW(停止所有运行时), Sweep(清除) 并行
v1.5 三色标记法
v1.8 三色标记法 + hybrid write barrier(混合屏障)

Golang使用系列---- Runtime

尽管 Go 编译器产生的是本地可执行代码,这些代码仍旧运行在 Go 的 runtime(这部分的代码可以在 runtime 包中找到)当中。这个 runtime 类似 Java 和 .NET 语言所用到的虚拟机,它负责管理包括内存分配、垃圾回收、栈处理、goroutine、channel、切片(slice)、map 和反射(reflection)等等。


Golang使用系列---- Concurrence

并发编程是我们计算机技术中最常用的一种编程技术,是一种基于多元程序的一种应用。


golang使用系列---- go基本使用积累

学习使用go语言已经有一段时间了,积累了很多的经验,这边进行不断接触的知识点进行零散的整理并持续积累,也便于后期的备忘。


Golang使用系列---- Map

map是我们经常使用的一种数据结构,也是很重要的一种数据结构,我们来详细的了解一下map。


Golang使用系列---- Sync

sync包提供了基本的同步基元,如锁,WaitGroup、Once 和 Cond等同步原语。除了Once和WaitGroup类型,大部分都是适用于普通程序线程,大型并发同步使用channel通信(csp)更好一些。


Golang使用系列---- mutex

锁是一种常见的并发控制技术,我们一般会将锁分成乐观锁和悲观锁,即乐观并发控制和悲观并发控制。




Golang使用系列---- Bufio

bufio 包实现了缓存IO。它包装了 io.Reader 和 io.Writer 对象,创建了另外的Reader和Writer对象,它们也实现了 io.Reader 和 io.Writer 接口,不过它们是有缓存的。该包同时为文本I/O提供了一些便利操作。


Golang使用系列---- Syscall

标准库syscall给这些系统调用做了不错的封装,不少常用的系统调用已经可以像普通函数一样直接调用,但是大部分使用起来都比较陌生。


Golang使用系列---- Go Context

控制并发有两种经典的方式,一种是WaitGroup,另外一种就是Context,当然还可以简单的直接用channel通知。



Golang使用系列---- Bytes

该包定义了一些操作 byte slice 的便利操作。因为字符串可以表示为 []byte,因此,bytes 包定义的函数、方法等和 strings 包很类似,所以讲解时会和 strings 包类似甚至可以直接参考。




Golang使用系列---- DesignPatterns

设计模式其实和语言关系不大,但是在项目工程的设计中有着很大的作用,这边使用golang实现相关的设计模式,也算是对过去看过用过的设计模式的回顾和总结。


Golang使用系列---- Strings

平时在开发过程中, 和字符串打交道还是比较多的,比如分割, 去除, 替换等等常用的方法, 这些都是由strings包来提供的。




Golang使用系列---- Go Net 协议层

网络编程是go语言使用的一个核心模块。golang的网络封装使用对于底层socket或者上层的http,甚至是web服务都很友好。


Golang使用系列---- Builtin

builtin包是go的预声明定义,包括go语言中常用的各种类型和方法声明,包括变量和常量两部分.


Golang使用系列---- Os

os包中实现了不依赖平台的操作系统函数接口(平台无关的接口),设计向Unix风格,但是错误处理是go风格,当os包使用时,如果失败之后返回错误类型而不是错误数量,返回错误值而非错误码,可以包含更多信息。


Golang使用系列---- Fmt

fmt是实现了格式化的I/O函数,这点类似C语言中的printf和scanf,但是更加简单。


Golang使用系列---- flag

golang自身带的命令行包flag,各种case,有代码洁癖的人看着就令人头大,我们一般使用其他的命令行解析包比如pflag,cobra等,cobra是个非常不错的命令行包(golang命令行解析库),docker,hugo都在使用.


Golang使用系列---- Interface

在Go语言的实际编程中,几乎所有的数据结构都围绕接口展开,接口是Go语言中所有数据结构的核心。



golang使用系列---- Time

time包中包括两类时间:时间点(某一时刻)和时长(某一段时间)的基本操作。