Press "Enter" to skip to content

Buffering and Iterating over Channels – Go Lang Practical Programming Tutorial p.23


cosa sta succedendo a tutti il benvenuto a
parte 23 della programmazione della lingua go
serie di tutorial in questo video siamo
costruirò l’ultimo video
dove stavamo parlando di andare
canali così nel tutorial precedente noi
appena mostrato un semplice esempio di
fondamentalmente invio e ricezione di valori
su questi canali ma abbiamo un po ‘di
mi chiedevo di imbattersi in pochi
cose e ci stiamo interrogando su alcuni
le cose la prima cosa è prima di tutto
abbiamo almeno notato che non l’abbiamo fatto
apparentemente devono sincronizzarli
canali a tutti sembra che hanno
in qualche modo è stato in grado di correre e il nostro programma
non ha finito fino a quando i valori erano
lì ma abbiamo anche notato che questo è un
un po ‘sfortunato perché in un semplice
esempio di giocattolo sicuro che potresti scrivere
tutti i canali che farai
corri ma molte volte potresti non saperlo
esattamente quanti canali potresti avere
Supponiamo anche che tu abbia appena avuto una nuova identità
ne avrò un gran numero forse alcuni
cento forse poche migliaia che lo sanno
non vuoi dover scrivere tutto
questi valori invece ti piacerebbe essere
in grado di scorrere su di loro, ecco cosa
parleremo qui di copertura
su tutte quelle cose prima di tutto
prima cosa che vogliamo solo coprire
proprio fuori dal cancello è di default il
invio e ricezione dei canali go
sta bloccando così quando facciamo fondamentalmente qui
questo deve accadere prima di poter tentare
per stampare e prima di conoscere il
la funzione è finita, ecco perché non l’abbiamo fatto
necessariamente devono usare qualsiasi
sincronizzazione ma come vedremo
molto presto qui avremo bisogno di
quindi lasciamoci sfoggiare un altro
esempio realistico così come piuttosto che
facendo così, diciamo invece
diremo per I due punti è uguale a 0 se
Posso digitare mentre ho meno di 10 anni
non posso dirtelo e poi lo faremo
incremento I andiamo avanti e facciamo piet
oltre foo Val e io quindi questo sarà 10 di
li sicuro che potremmo difficile codificare il 10
ricevimenti di dati ma che mm quello
sarebbe problematico e comincerebbe a
peggiorare ancora di cento o a
mille o 10.000 e così via
ci limiteremo a fare dieci per ora però così abbiamo
può eseguire quelli ora una volta che abbiamo loro come
li riceviamo senza dover
hard-code ogni singolo valore bene a
almeno l’unica cosa magica di andare è
l’affermazione dell’intervallo è appena possibile
apparentemente spaziano su tutti i tipi di cose
quindi, quindi, quello che possiamo fare è poter dire
articolo :
equivale a gamma foo vocale così possiamo
in realtà si estendono solo su quel foo val
canale di chat, quindi molti lo valutano
è fantastico che possiamo stampare in formato
elemento pubblicitario okay andiamo avanti e corriamo
quello e vedi come stiamo facendo
quindi vai a correre, ritocco, va bene così
tutto almeno alla prima volta
stiamo avendo un problema di tutto
le routine stanno bene così prima di tutto noi
è necessario che abbiamo bisogno di convertire questo per essere
la routine vera e propria, quindi sistemiamola
andiamo avanti e salviamo quella ripetizione
non è l’errore che mi aspettavo, va bene
fresco ora abbiamo ottenuto quello che speravo
quindi, come puoi vedere, l’abbiamo eseguito con loro
essere routines e in realtà abbiamo ottenuto
tutti i valori che volevamo se guardassi
Voglio dire, lo abbiamo sicuramente gestito dove ero
uguale a nove, giusto perché abbiamo ottenuto un 45
ma poi arriviamo a questo errore qui
le routine sono deadlock addormentato quindi cosa c’è
sta succedendo qui bene guardando qui
fondamentalmente possiamo vederlo sostanzialmente
come la gamma sa che vuole iterare
oltre foo Val ma non c’è mai veramente a
tempo in cui sappiamo che foo val sei tu
sapere fatto bene così in un modo che possiamo
almeno finisci il canale è a
avviare una chiusura in modo che possiamo chiudere
bubele quindi potremmo farlo e poi noi
potrebbe eseguire questo e quindi non vediamo nulla
succede a tutti qui
quindi cosa sta succedendo lì così potresti essere
pensando hey ho visto questo prima di tutto
dobbiamo fare è sincronizzare perché
in fondo quello che sta succedendo è tutto
le routine sono a conoscenza della corsa ma
quindi stiamo finendo il programma prima
Loro tornano
bene, hai ragione che abbiamo bisogno di
sincronizzare le cose ma ti sbagli
sul perché così esemplificare questo ciò che farò
faccio è importerò solo il tempo e lo so
preferiresti che lo facessi in mare aperto ma
è solo più veloce in questo modo che voglio
per mostrare un esempio di punto tempo reale veloce
punto tempo manica secondo due volte
okay, quindi aggiungeremo il sonno dove questo
confermerà o negherà se o
non è un problema delle routine di go
correndo quindi andremo avanti e corriamo
questo vero veloce
e ora abbiamo effettivamente arrivare a un errore e
l’ errore è che siamo nel panico che siamo
cercando di inviare su un canale chiuso così
quello che sta succedendo qui è che stiamo chiudendo
il canale e in realtà stiamo chiudendo
il canale non raggiunge la fine del
programma stiamo chiudendo il canale prima
arriviamo a mandare tutto così tanto
prima che questi siano addirittura fatti, iterando il
canali sono stati chiusi e boom siamo
cercando di inviare questi valori ma chiudiamo
il canale destro quindi sì abbiamo bisogno di
assicurati di essere sincronizzati ma questa volta
è per una ragione leggermente diversa
quindi l’abbiamo fatto prima così il primo
cosa che andremo avanti e faremo
è bene immagino che potremmo avere potremmo
hanno fatto le parentesi perché lo facciamo
bisogno di una seconda importazione ora e questo è
sarà sincronizzato con il formato di sincronizzazione e lo sappiamo
abbiamo fatto tutto questo prima di allora, andiamo
avanti e il nostro gruppo di attesa e l’attesa
il gruppo sarà di tipo punto di sincronizzazione
aspetta gruppo le altre cose vediamo
tutte le cose che dobbiamo prima fare
di tutto quando da quando useremo a
aspetta il gruppo nella funzione stessa
nella routine di go abbiamo bisogno di differire l’attesa
gruppo fatto abbiamo bisogno di fare in modo che
piste
mandare oltre il canale va tutto bene
e dandy ogni iterazione su quando lo facciamo
come chiamare la routine di go per eseguire abbiamo bisogno
aspettare il punto di gruppo aggiungerne uno ogni
tempo e poi quello che vogliamo fare è
prima di chiudere il canale abbiamo bisogno di
fare un punto di attesa del gruppo attendere così aspettiamo
tutti questi sostanzialmente finiscono poi noi
chiudi il canale, quindi possiamo iterare
su tutto , lasciami chiudere questo
lascia e poi l’altra cosa che mi piacerebbe
noi dobbiamo fare è come ora siamo
bloccando quindi salviamo solo questo
veloce e poi riesegui questo così finiamo
con questa mostruosità di un errore
e quello che vorremmo fare ora è usare
buffering, invece lasciami aggiungere
come un buffer qui in modo tale che le parole vocali lo sappiamo
abbiamo dieci articoli quindi cosa non potremmo fare
per aggiungere un buffer è solo una virgola e poi
qualunque sia il buffer e questi sono dentro
elementi non è byte così così così dieci
fondamentalmente vogliamo tamponare per dieci
articoli così perché in fondo non vogliamo
prima di tutto non vogliamo i nostri canali
come normalmente i canali stanno bloccando
l’ invio e ricevi e questo è grande se
ne hai bisogno per sincronizzare se tu
è necessario sincronizzarli per qualsiasi cosa
ragione nel nostro caso anche se non ne abbiamo bisogno
che abbiamo la nostra forma di
sincronizzazione e questo è solo andando
causare quei problemi così così stiamo andando
usa il buffering ora non lo saranno
bloccando e poi vai a correre vai e sicuro
abbastanza finalmente tutto funziona e noi
il nostro ritorno qui è così interessante
abbastanza che è andato quasi nell’ordine perfetto
ce n’è un paio era davvero solo
una cosa che ha ottenuto era diversa comunque
eccoci qui che è meglio comunque così
questo punto possiamo vedere che abbiamo noi
ora sai come usare le routine come
sincronizzare le routine di go e poi anche
come inviare e ricevere valori oltre
canali con le nostre routine di go quindi a questo
punto in realtà siamo pronti per applicare
tutto questo per il nostro nostro aggregatore di notizie
app web che al momento prende circa
cinque secondi interi da caricare e la nostra speranza
è che possiamo sperare che sia così
un numero molto più basso quindi nel prossimo
tutorial che cosa stiamo facendo è
in realtà applicando tutto questo al nostro
app web preesistente vedi come facciamo e
sì quindi se avete domande Commenti
riguarda qualsiasi cosa fino a questo punto senta
libero di collegare sotto altrimenti vedrò
tu nel prossimo tutorial
Please follow and like us:

Be First to Comment

Lascia un commento