Comment peut-autres goroutines garder de l'exécution, tout en invoquant un syscall? (lors de l'utilisation de GOMAXPROCS=1)
Pour autant que je suis au courant de, lors de l'invocation d'un syscall le fil donne le contrôle jusqu'à ce que le syscall retourne.
Comment Allez atteindre cette simultanéité sans la création d'un système de thread par blocage-sur-syscall goroutine?
À partir de la documentation:
Goroutines
Ils sont appelés les goroutines parce que les conditions existantes-fils, coroutines, de processus, et ainsi de suite-transmettre inexactes connotations. Un goroutine a un modèle simple: c'est une fonction qui s'exécute simultanément avec d'autres goroutines dans le même espace d'adressage. Il est léger, coûts peu plus que l'allocation de l'espace de pile. Et les piles commencez petit, de sorte qu'ils sont bon marché, et de grandir en allouant (et libérer) tas de stockage que nécessaire.
Goroutines sont multiplexées sur plusieurs OS threads donc, si l'on doit bloc, comme lors de l'attente pour les e/S, d'autres continuent à s'exécuter. Leur le design se cache de nombreuses complexités de la création de thread et de la gestion.