package main
import (
"fmt"
"time"
)
func myGoroutine(stopCh <-chan struct{}) {
// 在协程中监听停止信号
for {
select {
case <-stopCh:
// 接收到停止信号,执行清理操作并退出
fmt.Println("cleanup")
return
default:
// 继续正常的协程逻辑
fmt.Println("doWork")
}
}
}
func main() {
// 创建一个用于发送停止信号的通道
stopCh := make(chan struct{})
// 启动协程,并传入停止信号通道
go myGoroutine(stopCh)
// 在需要停止协程的时候,向通道发送停止信号
time.Sleep(time.Second)
stopCh <- struct{}{}
// 等待协程退出
time.Sleep(time.Second)
}
标签:myGoroutine,测试,只读,chan,golang,func
From: https://www.cnblogs.com/securitybob/p/17415788.html