序言
在学习golang并发编程的过程中安装gcc编译器套件时时遇到了一些问题,于是这里记录下来,以便后序同学安装使用。
windows环境下 winGW的安装与使用
1.环境准备
1.Windows11
2.go1.22.1
3.winGW下载链接(亲测go1.22.1版本支持winGW13.2版本的使用,8.3版本的winGW不再适用)
2.开始安装
1.下载完压缩包直接解压到winGW安装路径(非系统盘也可,我安装在了D盘)
2.此时打开你安装路径中的bin目录,copy全路径(后序设置环境变量使用)
3.配置环境变量
(我的电脑右键->属性->高级系统设置->环境变量,记得要加分号与其他环境区分开)
添加完后一路点击确定,只有点击确定环境变量才会生效,重启goland是刚添加的环境变量生效。
4.打开c go 使用 开关
go env -w CGO_ENABLED=1
5. 到这里就可以使用我们的Go race detector(go资源竞争检测器)了
6. 测试代码(这里存在count共享资源并发竞争的问题)
var count = 0
// 使用WaitGroup等待10个goroutine完成
var wg sync.WaitGroup
wg.Add(10)
for i := 0; i < 10; i++ {
go func() {
defer wg.Done()
// 对变量count执行10次加1
for j := 0; j < 100000; j++ {
count++
}
}()
}
// 等待10个goroutine完成
wg.Wait()
fmt.Println(count)
7.使用go run -race main.go运行时检测我们的程序是否存在并发安全问题
可以看到警告信息