Golang面试遇到的问题--控制goroutine的并发数量
2019-05-28 12:42
302 查看
版权声明:原创勿转 https://blog.csdn.net/anakinsun/article/details/90637142
问题
使用goroutine的时候,如何控制并发的数量。
下面是一个简单的实现思路,用带缓存的channel
code
import ( "fmt" "sync" "time" ) var wg sync.WaitGroup func main() { userCount := 10 ch := make(chan bool, 2) for i := 0; i < userCount; i++ { go Read(ch, i) } wg.Wait() } func Read(ch chan bool, i int) { defer wg.Done() wg.Add(1) ch <- true //do some work here fmt.Println("i:", i, ":", time.Now().Unix()) time.Sleep(time.Second) <-ch }
相关文章推荐
- 面试常问问题:银行网上支付项目中怎么控制多线程高并发访问?
- java/golang开发面试中遇到的问题集锦--持续更新
- 面试常问问题:银行网上支付项目中怎么控制多线程高并发访问?
- 面试的岁月!工作能力的提升是解决问题的数量和质量双重结果!以下是Hibernate框架搭建遇到的问题。
- go中利用hmset替换hset来提高redis的存取效率及并发goroutine可能遇到的问题
- go中利用hmset替换hset来提高redis的存取效率及并发goroutine可能遇到的问题
- 数据库讲义第二章并发问题及控制手段
- Eclipse结合SVN进行版本控制在执行更新时遇到的问题
- 最近面试中遇到的海量数据库设计问题
- Android--面试中遇到的问题总结(四)
- 面试遇到的问题汇总
- Top 50 Java 线程并发的面试问题
- 面试遇到的问题
- golang实现并发数控制的方法
- 控制MAC层数据发送过程遇到的问题
- 面试遇到的问题
- Android面试遇到的问题(2)
- 【转】JAVA中的多线程问题(高级面试中经常遇到)
- 面试遇到的问题
- 嵌入式面试时遇到的几个常见问题