golang 中sync.WaitGroup以及select简单实用
来源:互联网 发布:php replace函数用法 编辑:程序博客网 时间:2024/05/21 09:48
golang中sync.WaitGroup的作用类似于channel,可实现并发。
package main
import (
"fmt"
"runtime"
"sync"
)
func main() {
runtime.GOMAXPROCS(runtime.NumCPU()) //多核
wg := sync.WaitGroup{}
wg.Add(10)
for i := 0; i < 10; i++ {
go f(&wg, i)
}
wg.Wait()
}
func f(w *sync.WaitGroup, i int) {
fmt.Println(i, "go")
w.Done()
}
golang中select是配合channel使用的。
package main
import (
"fmt"
"runtime"
)
func main() {
runtime.GOMAXPROCS(runtime.NumCPU())
c1, c2 := make(chan int), make(chan string)
flag := make(chan bool, 2)
go func() {
for {
select {
case k, err := <-c1:
if !err {
flag <- true
break
}
fmt.Println(k)
case k, err := <-c2:
if !err {
flag <- true
break
}
fmt.Println(k)
}
}
}()
c1 <- 1
c2 <- "a"
c1 <- 2
c2 <- "b"
close(c1)
close(c2)
for i := 0; i < 2; i++ {
<-flag
}
}
- golang 中sync.WaitGroup以及select简单实用
- golang sync WaitGroup
- golang sync WaitGroup
- GOLANG sync.WaitGroup讲解
- golang中的sync.WaitGroup
- golang sync WaitGroup
- Golang 1.7.3 Context 简单用法.类似sync.WaitGroup
- golang中协程同步sync.waitGroup
- golang waitgroup 及 sync.Once 示例
- go语言sync.WaitGroup
- Go 语言sync中waitgroup使用.小实例
- GoLang WaitGroup使用
- golang积累-WaitGroup包装
- golang中sync.RWMutex和sync.Mutex
- golang线程同步WaitGroup简介
- golang基础-WaitGroup、kafka消费者
- GO中的sync.waitgroup的用法
- sync.WaitGroup的错误用法与纠正
- 回调地狱,callback hell
- 中断
- Linux硬件信息命令大全
- 从深度学习选择什么样的gpu来谈谈gpu的硬件架构
- http协议详解
- golang 中sync.WaitGroup以及select简单实用
- oracle JDBC连接数据库
- java抽象类和接口的区别(自己总结,方便记忆版)
- VIJOS 1321 魔塔
- MarkDown Usage
- Redis学习笔记(5)-SpringDataRedis的使用
- Android App的设计架构:MVC,MVP,MVVM与架构经验谈
- jar包学习
- 常用vim快捷键 (未包括折叠