Go 语言传统的同步 goroutine 的机制

简介: 在这方面,JAVA确实细致, 至于GO能否在线程池方法有JAVA的优势, 要时间证明。

在这方面,JAVA确实细致,

至于GO能否在线程池方法有JAVA的优势,

要时间证明。



13fe59a897cfefa07249498d5920c30e5dfd960b



package main

import (
	"fmt"
	"runtime"
	"sync"
)

var (
	counter int
	wg      sync.WaitGroup
	mutex   sync.Mutex
)

func main() {
	runtime.GOMAXPROCS(1)

	wg.Add(2)

	fmt.Println("Start Goroutines")

	go incCounter(10)
	go incCounter(20)

	fmt.Println("Waiting to Finish")
	wg.Wait()
	fmt.Println("\nFinal Counter: ", counter)
}

func incCounter(id int) {
	defer wg.Done()

	for count := 0; count < id; count++ {
		mutex.Lock()
		{
			value := counter
			runtime.Gosched()
			value++
			counter = value
		}
		mutex.Unlock()

	}

}


目录
相关文章
|
10天前
|
Go
go语言中的数据类型
go语言中的数据类型
11 0
|
16天前
|
Go 开发者
掌握Go语言:Go语言结构体,精准封装数据,高效管理实体对象(22)
掌握Go语言:Go语言结构体,精准封装数据,高效管理实体对象(22)
|
16天前
|
安全 Go
掌握Go语言:Go语言通道,并发编程的利器与应用实例(20)
掌握Go语言:Go语言通道,并发编程的利器与应用实例(20)
|
16天前
|
存储 缓存 安全
掌握Go语言:Go语言中的字典魔法,高效数据检索与应用实例解析(18)
掌握Go语言:Go语言中的字典魔法,高效数据检索与应用实例解析(18)
|
16天前
|
存储 安全 Go
掌握Go语言:Go语言类型转换,无缝处理数据类型、接口和自定义类型的转换细节解析(29)
掌握Go语言:Go语言类型转换,无缝处理数据类型、接口和自定义类型的转换细节解析(29)
|
1天前
|
前端开发 Java Go
开发语言详解(python、java、Go(Golong)。。。。)
开发语言详解(python、java、Go(Golong)。。。。)
|
10天前
|
存储 Java 编译器
go语言基础语法
go语言基础语法
|
16天前
|
存储 缓存 安全
掌握Go语言:Go语言Map,高效键值对集合的应用与注意事项详解(26)
掌握Go语言:Go语言Map,高效键值对集合的应用与注意事项详解(26)
|
16天前
|
存储 安全 编译器
掌握Go语言:精通Go语言范围(range),高级应用及进销存系统实战(25)
掌握Go语言:精通Go语言范围(range),高级应用及进销存系统实战(25)
|
16天前
|
供应链 算法 安全
掌握Go语言:函数精髓,定义、参数、多返回值与应用(14)
掌握Go语言:函数精髓,定义、参数、多返回值与应用(14)