Zastanawiam się, jaki jest lepszy sposób, aby czekać w goroutine, time.Sleep()
lub ? Jaka jest różnica między tymi dwoma i jak dokonywać wyborów? Dzięki.Goroutine: time.Sleep or time.After
9
A
Odpowiedz
14
Nie sądzę, że ma to znaczenie dla większości programów. Nie było question on golang-nuts about this, ale nie sądzę, można wyciągnąć żadnych wniosków.
W praktyce After
jest przydatna w sytuacjach, w których jeden już potrzebnych do select
na kilku kanałach, lecz także jak timeout:
select {
case c := <-someChan:
..
case c := <-otherChan:
..
case <-time.After(time.Second * 42):
}
Przez powierzchownie patrząc na kod Sleep
wydaje się prostsze, gdy After
buduje nowy timer, z okresem, zamknięciem, aby wysłać czas, kiedy kończy się itp.
Ponownie, nie sądzę, aby miało to znaczenie w praktyce, ale time.Sleep
wydaje się dość czytelne, więc chciałbym z tym.
Na moim realizację obu z nich wykonać dokładnie ten sam system połączeń i skończyć oczekujące:
futex(??, FUTEX_WAIT, 0, {41, 999892351}
^^ 41 seconds and change
Powiązane problemy
- 1. Python time.sleep
- 2. Wybrać w goroutine ocenia każde inne stwierdzenie
- 3. Python time.sleep() vs event.wait()
- 4. Czy time.sleep pomaga procesorowi?
- 5. Python: wysoka precyzja time.sleep
- 6. Analogi Goroutine w innych językach
- 7. Jak korzystać z basenu goroutine
- 8. Co stanie się z wartością zwracaną z goroutine
- 9. Laravel 4 eloquent WHERE with OR OR OR?
- 10. $ (this) OR event.target OR var input = $ (this)
- 11. Golank goroutine nie działa z kanałem wewnątrz
- 12. Brak wyjścia z goroutine w Go
- 13. Python - dlaczego funkcja time.sleep powoduje przeciek pamięci?
- 14. Problemy z sys.stdout.write() z time.sleep() w funkcji
- 15. LINQ dołącz z OR
- 16. bitowe OR stałych
- 17. [Multi] Instrukcja DataTrigger "OR"?
- 18. defaultProps vs logiczną OR
- 19. Dplyr or Magrittr - tolower?
- 20. Laravel5: Middleware or Validation?
- 21. CQL Cassandra operator OR
- 22. Makefile ifeq logical or
- 23. Upraszczanie regex OR wzorów
- 24. Select Case Not Or
- 25. „or die()” w Pythonie
- 26. Javascript: onrefresh or onreload?
- 27. Jak utworzyć kanał, który otrzymuje wiele wartości zwracanych z goroutine
- 28. Czy istnieje sposób, aby zatrzymać time.sleep w systemie Windows?
- 29. Dlaczego wymagany jest time.sleep do uruchomienia niektórych goroutines?
- 30. Wiosenne dane JPA Zapytanie "OR"