这是我参与「第五届青训营 」伴学笔记创作活动的第 2 天
进程和线程说明
1、 "进程"就是程序在操作系统中的一次执行过程,是系统进行资源分配和调度的基本单位
2、 "线程"是进程的一个执行实例,是程序执行的最小单位,它是比进程更小的能独立运行的基本单位
//比如迅雷软件,我们打开迅雷就会启动一个进程
//我们通过迅雷同时下载多个文件,每个下载的任务都是一个线程
3、一个进程可以创建和销毁多个线程,同一个进程中的多个线程可以"并发"执行
4、 一个程序至少有一个"进程",一个进程至少有一个"线程"
并发和并行
我们同时启动多个线程,这些线程运行在同一个cpu上就是并发
多个线程在多颗cpu上运行,就是并行
协程
在go语言中,进程被称为主线程,基于主线程创建的一种特殊的线程 被称为协程(goroutine)协程比起上面说的线程更加的轻量级,可以轻松启动上万个
优点
1、有独立的栈空间 //一旦开启一个协程,它有独立的空间
2、共享程序堆空间
3、调度由用户可控制 //程序开启和停止是程序员控制的
4、协程是轻量级的线程
依赖
工具 go get
@update 默认 @none 删除依赖 @v1.1.1 tag版本,语义版本 @23dfdd5 特定的commit @master 分支的最新commit
单元测试
单元测试-规则
1.所有测试文件以_test.go结尾
2.func TestXxx(t *testing.T)
3.初始化逻辑放到TestMain中
测试工具 assert
import 包 "github.com/stretchr/testify/assert" 使用assert.Equal就能进行判断
基准测试
优化代码,需要对当前代码分析 内置的测试框架提供了基准测试的能力
web项目
使用gin框架 go mod init go get gopkg.in/gin-gonic/gin.v1@v1.3.0