Scala Futures

Scala Futures
Parfois, tout en effectuant des calculs complexes, nous nous attendons à ce que nos programmes effectuent différentes tâches simultanément pour avoir une meilleure vitesse et une meilleure efficacité. Ce concept joue un rôle vital, surtout lorsque nous ne voulons pas que les tâches prennent du temps pour bloquer l'ensemble de notre traitement. Dans le langage de programmation Scala, les fonctionnalités des threads peuvent être réalisées en utilisant les futures Scala et nous en apprendrons davantage dans cet article.

Quels sont les futures Scala et quel est le but de les utiliser?

Nous avons déclaré dans l'introduction que Scala Futures sert le même objectif que les fils dans tout autre langage de programmation I.e., concurrence. Cela signifie qu'en créant un avenir scala pour toute tâche qui devrait prendre plus de temps que d'habitude à exécuter, vous pouvez effectuer d'autres tâches en parallèle. Cela permettra de gagner votre temps de calcul sans bloquer le flux normal de votre programme.

Exemples d'utilisation de Scala Futures

Si vous souhaitez utiliser les futures Scala dans Ubuntu 20.04, alors les deux exemples suivants vous aideront bien à le faire.

Exemple n ° 1: commencer avec Scala Futures

Dans cet exemple, nous souhaitons seulement partager avec vous la syntaxe générale de l'utilisation des futures Scala. Pour apprendre cela, vous devez jeter un œil au code Scala illustré ci-dessous:

Pour utiliser les futures Scala, vous devez d'abord importer les deux bibliothèques requises I.e., «Scala.concurrent._ "Et" Scala.concurrent.ExécutionContext.Implicits.mondial". Après avoir importé ces bibliothèques, la prochaine chose que vous devez faire est de créer une classe exécutable. Nous avons créé une classe nommée «Test» à l'aide du mot-clé «objet». Ensuite, dans cette classe exécutable, nous avons créé une fonction de pilote «main ()» à l'intérieur de laquelle nous avons créé une valeur nommée «FUT». Ensuite, nous lui avons attribué un avenir scala. Dans cet avenir, nous voulions effectuer deux tâches différentes.

En raison de la première tâche, nous endormit notre programme pendant 1 seconde. Ensuite, nous voulions calculer le résultat de l'énoncé «21 + 21». Cependant, nous aimerions dire ici que cette deuxième tâche ne sera exécutée qu'après que la première déclaration terminera son exécution. Ensuite, nous voulions imprimer le résultat de la variable «FUT». Ce résultat retournera «non terminé» si l'exécution de l'avenir susmentionné sera toujours en attente; sinon, le résultat de la deuxième instruction sera calculé. Par conséquent, les deux tâches seront effectuées avec succès. Enfin, nous voulions imprimer un message sur le terminal qui informera à l'utilisateur que l'exécution de cette fonction est partiellement terminée.

Nous serons en mesure d'exécuter ce script Scala une seule fois qu'il sera compilé avec succès, ce qui peut être fait avec la commande suivante:

$ futures scalac.Scala

Une fois que ce script Scala sera bien compilé, nous pouvons l'exécuter avec la commande illustrée ci-dessous:

$ Test Scala

La sortie produite par ce script scala est affichée dans l'image suivante. Il a représenté l'utilisation des futurs de Scala dans Ubuntu 20.04.

Exemple n ° 2: exécuter deux tâches indépendantes - une avec les futures Scala et une autre normalement

Maintenant, nous allons aller plus loin en vous expliquant un exemple pratique d'utilisation de Scala Futures dans Ubuntu 20.04. Dans cet exemple, nous effectuerons deux tâches différentes. Le premier sera accompli en utilisant les futures Scala tandis que le second sera exécuté normalement. Nous avons intentionnellement conçu la première tâche d'une manière que son exécution prendra un certain temps. C'est exactement pourquoi nous avons joint cette tâche dans le futur Scala. Cependant, en ce qui concerne la deuxième tâche, il a été conçu de manière à être exécuté rapidement. De cette façon, nous recevrons la sortie de la deuxième tâche avant de recevoir la sortie de la première tâche. Pour comprendre cette fonctionnalité, vous devrez consulter le script scala illustré ci-dessous:

Encore une fois, dans ce script Scala, nous avons d'abord importé les deux bibliothèques requises. Ensuite, nous avons créé la classe de pilote et la fonction du pilote de la même manière que nous l'avons fait dans l'exemple ci-dessus. Après cela, nous avons créé une valeur nommée «FUT». À cela, nous avons attribué l'avenir de Scala dans lequel nous avons utilisé un fil qui appellera la fonction «sommeil» pendant une seconde. Ensuite, nous avons créé une valeur nommée «X» et lui avons attribué le résultat de l'instruction «2 + 2». Après cela, nous voulions imprimer cette valeur sur le terminal puis imprimer un message que la deuxième tâche I.e., Le calcul de «X» a été achevé avec succès. Ensuite, nous voulions imprimer la valeur de la variable «FUT» qui dépendra de l'exécution de notre avenir Scala. Enfin, nous voulions imprimer un message sur le terminal pour informer l'utilisateur que maintenant, la première tâche a également été terminée.

Après la compilation et l'exécution de ce script Scala, la sortie suivante est apparue sur le terminal. Dans cette sortie, d'abord, le résultat de notre deuxième tâche I.e., 2 + 2 a été imprimé sur le terminal qui est «4». Ensuite, nous avons été informés que la deuxième tâche a été effectuée avec succès. Après cela, le résultat de notre «futur» a été imprimé sur le terminal suivi d'un autre message de réussite.

Conclusion

Nous voulions vous présenter le concept de Scala Futures dans Ubuntu 20.04 avec l'aide de ce guide. Tout d'abord, nous avons partagé avec vous quels sont les futurs de Scala et comment sont-ils liés au concept de fils et de concurrence. Après cela, nous avons établi une bonne compréhension de Scala Futures en indiquant le but de les utiliser. Ensuite, nous avons mis en œuvre deux exemples très basiques qui ont utilisé ce concept important dans le langage de programmation Scala pour atteindre la concurrence. Avec l'aide de ce guide et de ces exemples, vous pouvez implémenter des exemples plus complexes dans lesquels vous pourrez exécuter plusieurs tâches simultanément avec l'aide de Scala Futures.