https://dotzero.blog/golang-lru/ начал читать про lru и из примера не понял зачем двусвязные список таскать если все значения из мапы берут
При вытеснении элемента из кэша, его нужно удалить из списка. Удаление из односвязного списка требовало бы обхода списка, в худшем случае, целиком (O(n)), а из двухсвязного удаляем за O(1).
Подскажите как можно выйти из горутины, в которой вызывается обычная функция и она может выполняться несколько минут. Ситуация как в коде снизу примерно
quit := make(chan bool) go func() { for { select { case <- quit: fmt.Println("quit") return default: fmt.Println("start") //тут функция на несколько минут time.Sleep(3*time.Second) } } }() time.Sleep(1*time.Second) quit <- true