chan:go routine 间消息通道
package main
import (
"log"
"time"
)
type APIHandler struct {
RestartChan chan bool
}
var API = &APIHandler{
RestartChan: make(chan bool),
}
var Debug bool = true
func main(){
log.SetPrefix("[chan] ")
log.Println("start...")
if Debug {
log.SetFlags(log.Lshortfile | log.LstdFlags)
}
go func() {
for range API.RestartChan {
API.Print()
}
}()
for {
API.RestartChan <- true
time.Sleep(1*time.Second)
}
}
func (api *APIHandler) Print(){
log.Println("chan in")
}
result:
[root@jn chann]# go run chann.go
[chan] 2022/06/15 09:26:57 start...
[chan] 2022/06/15 09:26:57 chann.go:40: chan in
[chan] 2022/06/15 09:26:58 chann.go:40: chan in
[chan] 2022/06/15 09:26:59 chann.go:40: chan in