[ go入门第二天-进阶与测试 | 青训营笔记]

52 阅读2分钟

这是我参与「第五届青训营 」伴学笔记创作活动的第 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