Golang 사용 채널 제한goroutine 수량
816 단어 goroutine 수량 제한
대부분은 채널로 고로틴의 수를 제한합니다.
다음은 테스트 DEMO입니다.
package main
import (
"fmt"
"runtime"
"time"
)
var (
chanNum = 3 //
readChan = make(chan int) // channel
limitChan = make(chan bool, 1000) // goroutine channel, 1000
)
//
func init() {
fmt.Println("init")
for i := 0; i < chanNum; i++ {
go Queue(i, readChan) //
}
}
func main() {
fmt.Println("main")
// go , readChan
go func() {
for {
readChan
결과는 다음과 같습니다.
go run channel_limit_goroutine.go
init main 0====numGo:==1004 1====numGo:==1003 2====numGo:==1005 1====numGo:==1005 0====numGo:==1005 2====numGo:==1005 0====numGo:==1005 1====numGo:==1005 2====numGo:==1005