Scala Futures

Scala Futures
A volte, mentre eseguiamo calcoli complessi, ci aspettiamo che i nostri programmi svolgano compiti diversi contemporaneamente per avere una migliore velocità ed efficienza. Questo concetto gioca un ruolo vitale soprattutto quando non vogliamo che i compiti che richiedono tempo bloccano la nostra intera elaborazione. Nel linguaggio di programmazione Scala, la funzionalità dei thread può essere ottenuta facendo uso di Scala Futures e impareremo di più su di loro in questo articolo.

Quali sono i futuri Scala e qual è lo scopo di usarli?

Nell'introduzione abbiamo affermato che Scala Futures ha lo stesso scopo dei thread in qualsiasi altro linguaggio di programmazione i.e., concorrenza. Significa che creando un futuro Scala per qualsiasi compito che dovrebbe richiedere un tempo più lungo del solito per eseguire, è possibile eseguire altre attività in parallelo. Ciò risparmierà il tempo di calcolo senza bloccare il normale flusso del tuo programma.

Esempi di utilizzo di Scala Futures

Se desideri utilizzare Scala Futures in Ubuntu 20.04, quindi i seguenti due esempi ti aiuteranno bene a farlo.

Esempio n. 1: iniziare con Scala Futures

In questo esempio, desideriamo solo condividere con te la sintassi generale dell'utilizzo dei futuri Scala. Per imparare ciò, devi dare un'occhiata al codice Scala mostrato di seguito:

Per l'utilizzo di Scala Futures, è necessario prima importare le due librerie richieste i.e., “Scala.simultaneo._ "E" Scala.simultaneo.ExecutionContext.Impliciti.globale". Dopo aver importato queste librerie, la prossima cosa che devi fare è creare una classe eseguibile. Abbiamo creato una classe denominata "test" con l'aiuto della parola chiave "oggetto". Quindi, all'interno di questa classe eseguibile, abbiamo creato una funzione driver "main ()" all'interno della quale abbiamo creato un valore chiamato "FUT". Quindi, abbiamo assegnato un futuro di Scala. In questo futuro, volevamo svolgere due compiti diversi.

A causa del primo compito, stiamo fondamentalmente mettendo a dormire il nostro programma per 1 secondo. Quindi, volevamo calcolare il risultato dell'affermazione "21 + 21". Tuttavia, vorremmo dichiarare qui che questa seconda attività verrà eseguita solo dopo che la prima affermazione completerà la sua esecuzione. Quindi, volevamo stampare il risultato della variabile "FUT". Questo risultato restituirà "non completato" se l'esecuzione del futuro sopra menzionato sarà ancora in corso; Altrimenti, il risultato della seconda istruzione verrà calcolato. Quindi, entrambi i compiti saranno completati con successo. Infine, volevamo stampare un messaggio sul terminale che notifica all'utente che l'esecuzione di questa funzione è parzialmente completata.

Saremo in grado di eseguire questo script Scala solo una volta compilato correttamente, il che può essere fatto con il seguente comando:

$ Scalac Futures.Scala

Una volta che questo script Scala verrà compilato bene, possiamo eseguirlo con il comando mostrato di seguito:

$ Scala Test

L'output prodotto da questo script Scala è mostrato nella seguente immagine. Raffigurava l'uso di Scala Futures in Ubuntu 20.04.

Esempio n. 2: eseguire due compiti indipendenti: uno con i futures su Scala e un altro normalmente

Ora faremo un ulteriore passo avanti spiegandoti un esempio pratico dell'uso dei futuri Scala in Ubuntu 20.04. In questo esempio, eseguiremo due compiti diversi. Il primo verrà realizzato utilizzando i futures Scala mentre il secondo verrà eseguito normalmente. Abbiamo intenzionalmente progettato il primo compito in un modo che la sua esecuzione richiederà del tempo. Questo è esattamente il motivo per cui abbiamo racchiuso questo compito nel futuro di Scala. Tuttavia, per quanto riguarda il secondo compito, è stato progettato in modo da essere eseguito rapidamente. In questo modo, riceveremo l'output della seconda attività prima di ricevere l'output della prima attività. Per capire questa funzionalità, dovrai controllare lo script Scala mostrato di seguito:

Ancora una volta, in questo script Scala, abbiamo prima importato le due librerie richieste. Quindi, abbiamo creato la classe del driver e la funzione del driver nello stesso modo in cui abbiamo fatto nell'esempio sopra. Successivamente, abbiamo creato un valore chiamato "FUT". A questo, abbiamo assegnato la Scala Future in cui abbiamo usato un thread che chiamerà la funzione "Sleep" per un secondo. Quindi, abbiamo creato un valore chiamato "X" e ci abbiamo assegnato il risultato dell'affermazione "2+2". Successivamente, volevamo stampare questo valore sul terminale e poi stampare un messaggio che la seconda attività I.e., Il calcolo di "x" è stato completato con successo. Quindi, volevamo stampare il valore della variabile "FUT" che dipenderà dall'esecuzione del nostro futuro Scala. Infine, volevamo stampare un messaggio sul terminale per avvisare l'utente che ora, la prima attività è stata completata.

Dopo la compilazione e l'esecuzione di questo script Scala, il seguente output è apparso sul terminale. In questo output, in primo luogo, il risultato della nostra seconda attività I.e., 2+2 è stato stampato sul terminale che è "4". Quindi, ci è stato informato che il secondo compito è stato eseguito con successo. Successivamente, il risultato del nostro "futuro" è stato stampato sul terminale seguito da un altro messaggio di successo.

Conclusione

Volevamo presentarti il ​​concetto di Scala Futures in Ubuntu 20.04 con l'aiuto di questa guida. Innanzitutto, abbiamo condiviso con te quali sono Scala Futures e come si relazionano con il concetto di thread e concorrenza. Dopodiché, abbiamo stabilito una solida comprensione dei futuri Scala affermando lo scopo di usarli. Quindi, abbiamo implementato due esempi molto semplici che hanno utilizzato questo importante concetto nel linguaggio di programmazione Scala per ottenere la concorrenza. Con l'aiuto di questa guida e questi esempi, è possibile implementare esempi più complessi in cui sarai in grado di eseguire più attività contemporaneamente all'aiuto di Scala Futures.