golang基础

Data race

数据竞争:当多个goroutine并发访问同一个变量,并且至少有一个goroutine对变量进行写操作时,就会发生数据竞争。

go提供了一个内置的数据竞争检测工具:

$ go test -race mypkg    // to test the package
$ go run -race mysrc.go  // to run the source file
$ go build -race mycmd   // to build the command
$ go install -race mypkg // to install the package

vet

用于检测代码中工程师常犯的错误:

  • 错误的printf格式
  • 错误的构建tag
  • 在闭包中使用错误的range循环变量
  • 无用的赋值操作
  • 无法到达的代码
  • 错误使用mutex
  • ...

go vet pkg

comments powered by Disqus