Futures Scala

Futures Scala
Czasami, wykonując złożone obliczenia, oczekujemy, że nasze programy będą wykonywać różne zadania jednocześnie w celu uzyskania lepszej prędkości i wydajności. Ta koncepcja odgrywa istotną rolę, zwłaszcza gdy nie chcemy, aby czasochłonne zadania zablokowały całe nasze przetwarzanie. W języku programowania Scala funkcjonalność wątków można osiągnąć, wykorzystując futures Scala, a dowiemy się więcej o nich w tym artykule.

Jakie są futures Scala i jaki jest cel ich używania?

We wstępie stwierdziliśmy, że futures Scala służy temu samemu celowi, co wątki w każdym innym języku programowania I.mi., konkurencja. Oznacza to, że tworząc przyszłość Scala dla każdego zadania, które ma trwać dłużej niż zwykle, możesz wykonywać inne zadania równolegle. To pozwoli zaoszczędzić czas obliczeń bez blokowania normalnego przepływu programu.

Przykłady korzystania z futures Scala

Jeśli chcesz użyć futures Scala w Ubuntu 20.04, wtedy dwa następujące przykłady pomogą ci w tym.

Przykład nr 1: Pierwsze kroki z Futures Scala

W tym przykładzie chcemy tylko podzielić się z Tobą ogólną składnią korzystania z futures Scala. Aby się tego nauczyć, musisz spojrzeć na kod Scala pokazany poniżej:

Aby korzystać z futures Scala, najpierw musisz zaimportować dwie wymagane biblioteki I.mi., „Scala.równoległy._ ”I„ Scala.równoległy.ExecutionContext.Implice.światowy". Po zaimportowaniu tych bibliotek następną rzeczą, którą musisz zrobić, jest utworzenie klasy wykonywalnej. Stworzyliśmy klasę o nazwie „Test” za pomocą słowa kluczowego „Object”. Następnie, w tej klasie wykonywalnej, utworzyliśmy funkcję sterownika „main ()”, w której stworzyliśmy wartość o nazwie „FUT”. Następnie przypisaliśmy do niego przyszłość Scala. W tej przyszłości chcieliśmy wykonać dwa różne zadania.

Z powodu pierwszego zadania zasadniczo stawiamy nasz program na 1 sekundę. Następnie chcieliśmy obliczyć wynik stwierdzenia „21 + 21”. Chcielibyśmy jednak stwierdzić tutaj, że to drugie zadanie zostanie wykonane dopiero po pierwszej instrukcji zakończenia wykonania. Następnie chcieliśmy wydrukować wynik zmiennej „FUT”. Wynik ten zwróci „nie zakończony”, jeśli wykonanie wyżej wymienionej przyszłości będzie nadal w toku; W przeciwnym razie wynik drugiego instrukcji zostanie obliczony. Stąd oba zadania zostaną pomyślnie wykonane. Na koniec chcieliśmy wydrukować wiadomość na terminalu, który powiadomi użytkownika, że ​​wykonanie tej funkcji jest częściowo zakończone.

Będziemy mogli uruchomić ten skrypt Scala dopiero po pomyślnym skompilowaniu, co można wykonać za pomocą następującego polecenia:

$ scac futures.Scala

Gdy ten skrypt Scala zostanie dobrze skompilowany, możemy uruchomić go z poleceniem pokazanym poniżej:

test $ scala

Dane wyjściowe wytworzone przez ten skrypt Scala pokazano na poniższym obrazie. Przedstawiono użycie futures Scala w Ubuntu 20.04.

Przykład nr 2: Wykonanie dwóch niezależnych zadań- jeden z futures Scala, a drugi normalnie

Teraz pójdziemy o krok dalej, wyjaśniając praktyczny przykład korzystania z futures Scala w Ubuntu 20.04. W tym przykładzie będziemy wykonywać dwa różne zadania. Pierwszy zostanie osiągnięty za pomocą futures Scala, podczas gdy drugi zostanie wykonywany normalnie. Celowo zaprojektowaliśmy pierwsze zadanie w sposób, w jaki jego wykonanie zajmie trochę czasu. Właśnie dlatego zamknęliśmy to zadanie w przyszłości Scala. Jednak jeśli chodzi o drugie zadanie, zostało ono zaprojektowane w taki sposób, że zostanie szybko wykonany. W ten sposób otrzymamy wyjście drugiego zadania przed otrzymaniem wyjścia pierwszego zadania. Aby zrozumieć tę funkcjonalność, musisz sprawdzić skrypt Scala pokazany poniżej:

Ponownie, w tym skrypcie Scala, najpierw zaimportowaliśmy dwie wymagane biblioteki. Następnie utworzyliśmy klasę sterownika i funkcję sterownika w taki sam sposób, jak w powyższym przykładzie. Następnie stworzyliśmy wartość o nazwie „FUT”. Do tego przypisaliśmy przyszłość Scala, w której użyliśmy wątku, który wywoła funkcję „Sleep” przez sekundę. Następnie utworzyliśmy wartość o nazwie „x” i przypisaliśmy jej wynik instrukcji „2+2”. Następnie chcieliśmy wydrukować tę wartość na terminalu, a następnie wydrukować wiadomość, że drugie zadanie i.mi., Obliczenie „x” zostało pomyślnie zakończone. Następnie chcieliśmy wydrukować wartość zmiennej „FUT”, która będzie zależeć od wykonania naszej przyszłości Scali. Na koniec chcieliśmy wydrukować wiadomość na terminalu, aby powiadomić użytkownika, że ​​teraz pierwsze zadanie zostało również zakończone.

Po kompilacji i wykonaniu tego skryptu Scala na terminalu pojawiło się następujące dane wyjściowe. W tym wyjściu, po pierwsze, wynik naszego drugiego zadania I.mi., 2+2 wydrukowano na terminalu, który wynosi „4”. Następnie zostaliśmy powiadomieni, że drugie zadanie zostało pomyślnie wykonane. Następnie wynik naszej „przyszłości” został wydrukowany na terminalu, a następnie kolejne przesłanie sukcesu.

Wniosek

Chcieliśmy przedstawić Ci koncepcję futures Scala w Ubuntu 20.04 z pomocą tego przewodnika. Po pierwsze, podzieliliśmy się z tobą, czym są futures Scali i jak odnoszą się do koncepcji wątków i współbieżności. Następnie ustaliliśmy rozsądne zrozumienie futures Scala, podając cel ich użycia. Następnie wdrożyliśmy dwa bardzo podstawowe przykłady, które wykorzystały tę ważną koncepcję w języku programowania Scala, aby osiągnąć współbieżność. Za pomocą tego przewodnika i tych przykładów możesz zaimplementować bardziej złożone przykłady, w których będziesz mógł wykonywać wiele zadań jednocześnie za pomocą Scala Futures.