golang限制函数同时调用次数

使用select语句和带缓冲区的channel来控制函数并发执行次数 package main import ( "fmt" "time" ) // cocurrency number of the do func const cnum = 3 func main() { var jobs = make(chan bool, cnum) for { for i := 0; i < 10; i++ { go frqLimit(do, jobs, i) } time.Sleep(4e9) } } func frqLimit(f func(), jobChan chan bool, i int) { select { case jobChan <- true: f() <-jobChan default: fmt.Println("job channel is full. pass ", i) } fmt.Println("jobs", i, "exit") } func do() { time.Sleep(3e9) fmt.Println("job done") }

2021-03-04 · 1 min · 117 字 · Niuhe

Go语言和Makefile

Makefile基础 语法 # 目标 :依赖 # 根据依赖生成目标的命令 targets : prerequisites command 变量 Makefile 允许使用等号自定义变量。 txt = Hello World test: @echo $(txt) 上面代码中,变量 txt 等于 Hello World。调用时,变量需要放在 $( ) 之中。 调用Shell变量,需要在美元符号前,再加一个美元符号,这是因为Make命令会对美元符号转义。 test: @echo $$HOME 有...

2021-02-27 · 2 min · 976 字 · Niuhe