Les Goroutines peuvent-elles être résiliées avant la fin ?
Ce problème a déjà été résolu. La question qui se pose est de savoir s'il est possible de mettre fin aux goroutines avant la fin de leur exécution.
Les exemples montrent souvent l'utilisation de canaux et sélectionnent à cet effet, ce qui est efficace lorsque les goroutines s'engagent dans des tâches itératives permettant la surveillance des canaux. Cependant, dans l'extrait de code fourni, nous rencontrons une goroutine qui effectue une seule action avant de revenir :
<code class="go">func main() { stop := make(chan string, 1) go func() { time.Sleep(10 * time.Second) stop <- "stop" return }() <- stop }</code>
Pouvons-nous arrêter l'exécution de cette goroutine avant son achèvement ?
Réponse : Goroutines non contrôlables
Malheureusement, il n'existe aucun moyen direct de terminer une goroutine avant son retour (à part quitter brusquement l'ensemble du programme en utilisant os.Exit).
Les Goroutines sont intrinsèquement autonomes et ne sont pas soumises à un contrôle externe. Une fois lancés, ils fonctionnent de manière indépendante et ne peuvent pas être arrêtés de force.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!