package method import ( "fmt" ) // 定义一个阻断器通道 var blocker = make(chan struct{}) // 定义一个信号通道,用于中断阻断器 var interrupt = make(chan struct{}) // StartBlocker 启动阻断器 func StartBlocker() { func() { fmt.Println("阻断器启动,等待中断信号...") for { select { case <-blocker: // 阻塞等待 fmt.Println("阻断器正在运行...") case <-interrupt: // 接收到中断信号 fmt.Println("接收到中断信号,阻断器即将终止") return // 退出阻断器 } } }() } // InterruptBlocker 发送中断信号 func InterruptBlocker() { interrupt <- struct{}{} fmt.Println("中断信号已发送") }