Golang 사용 채널 제한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

좋은 웹페이지 즐겨찾기