语言进阶与依赖管理 | 青训营笔记

38 阅读2分钟

这是我参与「第五届青训营 」伴学笔记创作活动的第 2 天

今天学习的内容是语言进阶以及依赖管理。

1.锁Lock

Go语言的锁,是一个很有用的东西,Go语言是一门天生适合高并发的语言,所以Go语言的多线程必然是重中之重,但是一旦存在多线程,那么必然存在所,所以Go语言的锁是我们必然需要学习的东西。

image.png

我们使用go在函数前面就可以开启协程,协程是Go语言能够更适合高并发核心所在,我们可以认为go语言所有的函数都是一个协程,然后只需要在函数前面加上GO我们就可以开启协程,这样很方便也很简单。

image.png

2.线程同步 WaitGroup

线程同步其实是操作系统那一套,提供基本的同步原语,例如相互 排除锁。除了“一次”和“候选项”类型之外,大多数都是针对的 供低级库例程使用。更高级别的同步是 最好通过渠道和沟通来完成。原语以及锁,线程同步其实就是同步锁。

3. Go Module

Go Module 其实就是Java的maven,用来管理依赖,我们在Java里是通过Maven来导入第三方包,在Go语言,它直接出生就带了go module,我们通过这个来管理第三方包,所以我们才会更方便的管理第三方包。

image.png

Gin 是什么?

Gin 是一个用 Go (Golang) 编写的 HTTP Web 框架。 它具有类似 Martini 的 API,但性能比 Martini 快 40 倍。如果你需要极好的性能,使用 Gin 吧。

Gin是一个很优秀的web框架,在go语言里,框架很多,没有java里的spring那样有统治力,说实话,好用的框架真的让人念念不忘,希望Gin能给我带来一些惊喜吧。

package main

import (
  "net/http"

  "github.com/gin-gonic/gin"
)

func main() {
  r := gin.Default()
  r.GET("/ping", func(c *gin.Context) {
    c.JSON(http.StatusOK, gin.H{
      "message": "pong",
    })
  })
  r.Run() // listen and serve on 0.0.0.0:8080 (for windows "localhost:8080")
}