golang 协程返回值处理
package main
import "fmt"
import "sync"
var ch = make(chan int)
func do(lock *sync.Mutex, ct *int) {
lock.Lock()
*ct++
lock.Unlock()
ch <- 1
}
func main() {
fmt.Println("hello thread")
var ct = 0
lock := &sync.Mutex{}
for i:=0; i<10; i++ {
go do(lock, &ct)
}
for i:=0; i<10; i++ {
<- ch
}
fmt.Println("ct=", ct)
}
输出: 10
本文通过一个具体的示例,展示了如何在Golang中使用协程和通道进行并发编程,实现任务调度与结果收集。文章详细解释了锁机制在多协程环境中的应用,以及如何通过通道进行协程间的通信。
652

被折叠的 条评论
为什么被折叠?



