‫Istruttore: Allora, ricorda che nell'ultima
‫lezione abbiamo parlato dell'architettura Node, dove
‫due parti fondamentali
‫sono il pool di thread e l'event loop.
‫Quindi in questa lezione imparerai tutto
‫sui thread e su un pool di thread.
‫E nel
‫prossimo, ci immergeremo in profondità nel ciclo degli eventi.
‫Quindi iniziamo.
‫Quindi, prima di tutto, quando usiamo Node su un computer,
‫significa che c'è un processo Node in
‫esecuzione su quel computer.
‫E il processo è solo un programma in esecuzione.
‫E abbiamo già appreso che Node. js è
‫fondamentalmente un programma C++, che
‫quindi avvierà un processo quando è in esecuzione.
‫Questo è importante perché in
‫Node abbiamo effettivamente accesso a una variabile di
‫processo, che useremo più avanti in questo corso.
‫Ora in quel processo, Node. js viene eseguito
‫in un cosiddetto thread singolo.
‫E un thread è fondamentalmente solo una sequenza di istruzioni.
‫Ma non è importante capire a
‫fondo cos'è un thread o un processo.
‫Si tratta più di informatica.
‫Immagina un thread come una scatola in
‫cui il nostro codice viene eseguito nel processore di un computer.
‫Ora, ciò che è importante capire
‫qui è il fatto che Node viene eseguito in un solo
‫thread, il che rende facile bloccare le applicazioni Node.
‫E questo è qualcosa di cui abbiamo parlato prima, in realtà.
‫Ma è qualcosa di davvero, davvero importante da ricordare perché
‫questa è una delle caratteristiche
‫uniche che Node. js porta in tavola.
‫Quindi, ancora una volta, se esegui l'applicazione Node, verrà
‫eseguita in un solo thread.
‫Non importa se hai 10 utenti o 10
‫milioni di utenti che accedono alla tua applicazione contemporaneamente.
‫E quindi devi stare molto
‫attento a non bloccare quel thread.
‫E naturalmente ci occuperemo
‫di questo durante tutto il progetto in questo corso.
‫Andando avanti, capiamo ora
‫esattamente cosa succede in un singolo thread
‫quando avvii la tua applicazione Node.
‫Quindi, quando il programma viene inizializzato, viene eseguito tutto
‫il codice di livello superiore, il che significa tutto
‫il codice che non è
‫all'interno di alcuna funzione di callback.
‫Inoltre, sono richiesti tutti i moduli di cui la tua app ha bisogno
‫e tutti i callback sono registrati, proprio
‫come quelli che abbiamo
‫usato per il nostro server HTP nell'app Node Farm.
‫Ricordati che?
‫Quindi, dopo tutto ciò, il ciclo degli eventi inizia finalmente a funzionare.
‫E ancora, maggiori informazioni sull'evento in loop nel prossimo video.
‫Quello che devi sapere per ora è che il ciclo degli
‫eventi è dove la maggior parte del lavoro viene svolto nella tua app.
‫Quindi, è davvero il cuore dell'intera architettura Node.
‫Ma ecco il trucco, alcuni compiti sono in realtà troppo pesanti.
‫Sono troppo costosi per essere eseguiti nel ciclo degli eventi
‫perché bloccherebbero quindi il singolo thread.
‫Ed è qui che entra in gioco il pool di thread,
‫che proprio come il ciclo degli eventi,
‫viene fornito a Node. js dalla libreria
‫libuv di cui abbiamo parlato prima.
‫Quindi, il pool di thread ci fornisce
‫quattro thread aggiuntivi completamente separati dal thread singolo principale.
‫E possiamo effettivamente configurarlo fino a 128 thread.
‫Ma di solito, questi quattro sono sufficienti.
‫Quindi questi thread insieme hanno formato un pool di thread.
‫E il ciclo degli eventi può
‫quindi scaricare automaticamente le attività pesanti nel pool di thread.
‫E tutto questo avviene automaticamente dietro le quinte.
‫Non siamo noi sviluppatori a decidere
‫cosa va nel pool di thread e cosa no.
‫Ora, le attività costose che vengono scaricate sono
‫tutte le operazioni che riguardano i file, tutto ciò
‫che riguarda la crittografia, come la memorizzazione nella cache
‫delle password, quindi tutta la compressione e anche le ricerche DNS,
‫che sostanzialmente abbinano i
‫domini Web ai loro corrispondenti indirizzi IP reali.
‫Quindi questa è la
‫roba che bloccherebbe più facilmente il thread principale.
‫E così, Node si occupa di scaricarli
‫automaticamente nel pool di thread,
‫dove non bloccano il nostro ciclo di eventi.
‫E questa è la cosa più
‫importante che voglio che tu conservi da questo video.
‫Quindi, ora andiamo avanti e parliamo del ciclo di eventi stesso.