0

J'ai lu plusieurs tutoriels et partout le jeu est mentionné comme "non-bloquant". Je suis confus qu'en disant non bloquant ils signifient des E/S asynchrones ou non bloquantes. Selon ma compréhension, lorsqu'une requête http est reçue sur le serveur de jeu, elle attribue un thread dédié pour traiter cette requête et conserve ce thread jusqu'à ce qu'il renvoie une réponse. Alors, comment ça ne bloque pas?Le jeu est un framework asynchrone ou non-bloquant

Également par asynchrone, cela signifie-t-il que le thread principal peut générer un nouveau thread et lui déléguer son travail et exécuter l'instruction suivante? (Pour cela, nous devons utiliser akka)

+0

Eh bien, il n'attribue pas un thread dédié. Où avez-vous lu ça? – rethab

+0

J'utilise jouer dans mon projet et ce que j'ai observé en travaillant est que si la réponse n'est pas retournée, le thread est en attente. Nous faisons un appel au service externe et jusqu'à ce que ce service externe donne la réponse, le fil reste bloqué. – user1147070

Répondre

0

Pour comprendre cela, vous devez comprendre comment fonctionne Futures in scala. Les contrats à terme n'arrêtent pas l'exécution du programme. Tous les contrats à terme ne sont pas bloquants. Je vous suggère de lire à ce sujet: http://docs.scala-lang.org/overviews/core/futures.html.

Depuis la bibliothèque asynchrone du jeu est construit sur le futur de Scala. Une fois que vous avez terminé avec cela, vous aurez assez de connaissances pour répondre à votre propre question. De plus, lisez ceci si vous avez besoin de plus d'informations sur la façon dont à terme sont utilisés dans le jeu:

https://www.playframework.com/documentation/2.5.x/ScalaAsync