限制goroutine的数量

1.首先得知道,GOMAXPROCS指的是GMP调度模型中M的数量,一般情况下是和cpu的核数一致,可以显示的调用runtime.GOMAXPROCS来设置为最大的cpu核数,但是如果不调用,自动也会设置为这个值。

所以GOMAXPROCS并不能设置最大并发的goroutine的数量

2. goroutine的数量也不能无限制的变多,因为无限新增的话会耗尽资源。所以怎么解决呢?

需要用协程池,但实际上协程池也是用channel来实现的。每次新增goroutine的时候写入channel,当channel里面塞满的时候就阻塞了。具体实现参考:go语言限制Goroutine数量 - Go语言中文网 - Golang中文社区

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值