channels

jak zatrzymać goroutine

Mam goroutine, który wywołuje metodę i przekazuje zwracaną wartość na kanale: ch := make(chan int, 100) go func(){ for { ch <- do_stuff() } }() Jak powstrzymać takiego goroutina?

Dlaczego używanie niebuforowanego kanału w tym samym goroutine daje impas

Jestem pewien, że istnieje proste wyjaśnienie tej banalnej sytuacji, ale jestem nowy w modelu współbieżności. Kiedy uruchami ... ln(<-c) } Znowu, dlaczego ? Proszę, potrzebuję głębokiego wyjaśnienia, nie tylko jak wyeliminować impas i naprawić kod.

Jak wykryć, czy użytkownik opuścił kanał Phoenix z powodu rozłączenia sieci?

Mam aplikację Elixir / Phoenix server, a klienci łączą się przez system build in channels za pomocą websockets. Teraz chcę wy ... ocket, ale to nie wyszło. Aktualizacja: Z nowym niesamowitym Phoenix 1.2 Presence rzeczy, to nie powinno być już potrzebne.

Są kanałami przekazywanymi przez odniesienie

The Go tour ma taki przykład dla kanałów: https://tour.golang.org/concurrency/2 package main import "fmt" func sum(a [] ... e przez referencjÄ™, ale nie zostaĹ ' stworzony wskaĺşnik do C. Czy kanały są domyślnie przekazywane przez odniesienie w go ?