Мне нужно создать html-страницу с двумя кнопками, одна запустит goroutine, которая имеет бесконечный цикл, а другая кнопка должна разбить бесконечный цикл. Поскольку из моих чтений я понял, что горутин нельзя убить из-за пределов его. Есть ли способ реализовать это? Мой код выглядит следующим образом:Как остановить goroutine от клиента?
command := c.GetString("command") // from client to determine which button is clicked
quit := make(chan bool)
switch command {
case "start": // Button to start goroutine
go func() {
i := 0
for {
select {
case <- quit:
return
default:
fmt.Println("i: ", i)
i++
time.Sleep(3000 * time.Millisecond)
}
}
}()
case "stop": // Button to stop goroutine
quit <- true
}
Это довольно стандартный способ сделать это, да, есть ли у вас какие-либо особые проблемы? – LinearZoetrope
Разрешено несколько раз нажимать кнопку «старт», т. Е. Может быть более одного горутина? – ain
@ain Нет, не будет нескольких goroutines ... –