Goroutine与数据竞争

数据竞争(data race)

死锁也许听起来令人挺忧伤的,但伴随并发编程真正灾难性的错误其实是数据竞争,相当常见,也可能非常难于调试。

当两个线程并发地访问同一个变量,并且其中至少一个访问是写操作时,数据竞争就发生了。

下面的这个函数就有数据竞争问题,其行为是未定义的。例如,可能输出数值1。代码之后是一个可能性解释,试图搞清楚这一切是如何发生得。

datarace.go Continue reading “Goroutine与数据竞争”

Go的文件操作

Create Empty File(创建空文件):

Continue reading “Go的文件操作”

go语言string、int、int64互相转换

 

Go语言反射的使用示例

示例1

Continue reading “Go语言反射的使用示例”

Go正则表达式基本使用方法

【用法】

Continue reading “Go正则表达式基本使用方法”

Go正则表达式regexp示例大全

Continue reading “Go正则表达式regexp示例大全”

Go基本安装及环境变量说明

Go的安装与配置在官方已经有很详尽的说明,安装说明请参考官方链接:https://golang.org/doc/install

为方便开发,在开发环境的安装中需要注意的是个三个环境变量的设置:

1、$GOROOT:go的安装目录,配置后不会再更改;

2、$PATH:需要将go的bin目录添加到系统$PATH中以便方便使用go的相关命令,配置后也不会再更改;

3、$GOPATH:go项目在本地的开发环境的的项目根路径(以便项目编译,go build, go install),不同的项目在编译的时候该环境变量可以不同

Continue reading “Go基本安装及环境变量说明”