这是通道的做法 做一个通道 让协程传参进去
最后自己发信息 协程收到以后关闭
代码
package main
import (
"log"
"time"
)
func Daemon_Start(close chan struct{}) {
log.Printf("HELLO")
t := time.NewTicker(time.Second)
defer t.Stop()
for {
select {
case <-close:
log.Printf("DNS deamon stop\r\n")
return
case <-t.C:
log.Printf("RUN")
}
}
}
func main() {
dns_daemon_close := make(chan struct{})
go Daemon_Start(dns_daemon_close)
//defer func() { dns_daemon_close <- struct{}{} }() // close dns deamon
time.Sleep(time.Second * 5)
dns_daemon_close <- struct{}{}
time.Sleep(time.Second * 2)
}
+++++++cotext
做法