‫Bentornato e questo video, esamineremo i pool di minacce, quindi creeremo più
‫thread e vedremo cosa accadrà.
‫Pertanto, procediamo prima a creare semplicemente un thread di base e mi sbarazzerò di
‫questo materiale di origine di completamento.
‫E quindi siamo a un thread molto generico qui.
‫Quindi questo è un thread generico che abbiamo usato finora.
‫E qui aspettiamo un secondo, ad esempio, e ha un thread.
‫No.
‫E per avviarlo, ovviamente, dobbiamo chiamare il metodo di avvio qui verso la fine.
‫Quindi ora questo sarà solo un thread e inizierà.
‫Quindi niente di nuovo qui.
‫L'abbiamo fatto più volte lì.
‫Quindi l'unica differenza è che ora vorrei usare qualcosa chiamato pool di thread.
‫Ma prima di farlo, userò solo una fattura numerabile e numerata come quella,
‫e eseguirò un intervallo da zero a, diciamo, 100 per ora, due elenchi e per ogni voce.
‫vorrei fare qualcosa.
‫Quindi dirò solo di eseguire un codice specifico.
‫Quindi questa è praticamente solo una riga di codice.
‫E lì dentro voglio creare thread.
‫Quindi quello che farà è questo enumerabile o questo enumerabile in realtà creerà più
‫thread e ne creerà 100.
‫Quindi userò un link qui.
‫Quindi usando il collegamento di sistema per usare l'enumerabile e dovrebbe essere chiamato range con esso alla fine in modo
‫che siamo.
‫Quindi ciò farà semplicemente creerà 100 minacce e vedremo tutte quelle minacce sulla console.
‫Quindi cominciamo con quello.
‫E ci siamo.
‫E come puoi vedere, sta iniziando i thread e sta finendo i thread e centodue è l'ultimo
‫thread.
‫E vedo che è iniziato con tre.
‫Quindi inizia con tre, sei, cinque e così via.
‫Quindi l'ordine, come puoi vedere, è molto diverso da quello che ci aspetteremmo.
‫Quindi i thread hanno un ID diverso dall'ordine in cui ci aspetteremmo che fossero, ma poi sono iniziati e finiti
‫e forse è stato un po' troppo veloce.
‫Quindi creiamo un po' più di minacce o direi 1000 thread.
‫E come puoi vedere.
‫Crea tonnellate di thread, ma i thread vengono terminati prima che vengano avviati altri.
‫Quindi ci sono innumerevoli che li avvia dove li crea il più velocemente possibile, il più rapidamente possibile.
‫Ma come puoi vedere, ci vuole un po' di tempo.
‫Quindi diciamo circa un centinaio di millisecondi o giù di lì per creare un thread che siamo, li crea e
‫poi inizia a finirli.
‫Quindi, dopo un secondo, ha creato solo sei thread, quindi cinque thread.
‫Così uno dei primi era finito.
‫Quindi, come puoi vedere, crea quelle minacce.
‫E questo non è molto efficiente perché, beh, non possiamo controllare quelle minacce.
‫Non possiamo controllare questa quantità di minacce.
‫E questo è un aspetto molto importante.
‫Le minacce che devi essere molto, molto attento e molto preciso quando si lavora con le minacce.
‫Devi sapere cosa vuoi fare con quella minaccia e i bianchi lì e come lavorare in generale con tutto ciò
‫che è all'interno della minaccia.
‫Quindi questo è solo un esempio di minacce, come puoi crearne più di una.
‫E ha appena creato un migliaio di minacce del genere.
‫E ora diamo un'occhiata ai pool di minacce perché i loro pool hanno un
‫approccio leggermente diverso e utilizzano le minacce e sono un po' più sicuri, diciamo, perché non creano mille minacce che
‫non sono necessarie.
‫Ha solo le minacce che sono attualmente necessarie.
‫Quindi creiamo un pool di minacce qui.
‫E l'oggetto di lavoro dell'utente Q.
‫Q è un metodo di esecuzione che viene eseguito quando una minaccia del pool di minacce diventa disponibile.
‫Quindi, solo se è disponibile, verrà eseguito e avrà bisogno di un oggetto qui.
‫Quindi qui ce ne sono due diversi per vedere il callback e l'oggetto e gli darò solo un oh
‫come un oggetto.
‫Lo chiamerò e basta.
‫Oh, niente di speciale qui.
‫E cosa ho intenzione di eseguire nel pool di minacce.
‫Quindi dirò solo dammi l'io. D. della minaccia o del numero della minaccia e diciamo bene quando è
‫iniziata e quando è finita.
‫Quindi è praticamente tutto ciò che voglio fare con questo pool di minacce.
‫E come puoi vedere qui, non creiamo specificamente, non creiamo minacce lì dentro.
‫Ma questo pool di minacce lo farà per noi.
‫Quindi c'è molto lavoro da fare, come mille minacce da gestire.
‫E come puoi vedere, crea solo una quantità specifica di minacce.
‫E come puoi vedere, inizia e termina le minacce più o meno allo stesso tempo.
‫E puoi anche vedere che non ho molte chiamate sulla mia CPU qui perché può funzionare solo con una quantità specifica di
‫minacce allo stesso tempo.
‫Quindi il pool di minacce gestirà le cose molto più agevolmente, come puoi vedere.
‫Ma ovviamente ci vuole molto tempo per superare tutte queste 1000 minacce.
‫Ma come ho detto, se usi le minacce, devi controllarle, quindi non usare le minacce casualmente, praticamente la
‫cosa principale in cui useresti le minacce è quando fai qualcosa in background e fai qualcosa
‫in primo piano.
‫Quindi in primo piano c'è di solito qualcosa come l'interfaccia utente.
‫Quindi quando usi WP F o se usi app con Gamoran o crei assolutismo, allora tutto ciò che sta accadendo nella
‫parte anteriore e quindi nell'interfaccia utente viene fatto dalla minaccia principale e poi o dalla minaccia dell'interfaccia utente, e poi
‫qualcosa come il download di video o scaricare dati in genere da Internet o accedere ai dati
‫dal disco rigido o dalla scheda SD o quant'altro.
‫Tutto ciò che potrebbe richiedere un po' di tempo, anche se sono solo un paio
‫di millisecondi o un'altra coppia, ma diversi millisecondi, allora è già qualcosa che dovrebbe essere fatto in
‫background perché altrimenti la tua interfaccia utente sarà bloccata perché, beh, non è pronta per fare qualcosa perché le minacce sono tutte
‫occupate.
‫Va bene, quindi si tratta di creare pool di minacce e se hai molte cose da fare, puoi usare i pool
‫di minacce.
‫Quindi ci sono diverse cose da considerare quando si usano i pool di minacce, quindi generalmente i pool di
‫minacce sono lì per eseguire un lavoro specifico o eseguire lavori o elementi di lavoro specifici e aspetteranno praticamente fino a quando la prossima minaccia
‫è pronta o una minaccia viene eseguita prima di essa inizia.
‫La prossima minaccia o prima che inizi con il prossimo oggetto di lavoro.
‫Quindi questo è il vantaggio dei pool di minacce, che non hanno tempo di inattività o di sonno in cui non
‫succede praticamente nulla perché possono esserci situazioni in cui semplicemente non deve essere fatto nulla con la tua o la
‫tua CPU.
‫E questo va benissimo perché altrimenti sarebbe piuttosto pesante per la CPU se deve funzionare tutto il tempo e
‫fare cose tutto il tempo o lavorare pesantemente.
‫Ma in genere prova a tirare e dice semplicemente, OK, se non c'è niente o se c'è abbastanza spazio per
‫me per eseguire un thread o creare una minaccia, lo farò ed eseguirò le cose che devono
‫essere fatto.
‫Le minacce nel pool di minacce gestito, tra l'altro, sono minacce in background.
‫Questa è la loro minaccia è lo sfondo.
‫La proprietà è vera.
‫Quindi non l'abbiamo mai visto prima.
‫Ma se creo una minaccia del genere.
‫Quindi ecco, fammi prendere questa nuova minaccia da qui.
‫E se voglio impostarlo in background, posso farlo.
‫Quindi il suo background è uguale a, per esempio.
‫Ecco come posso impostare questo thread sullo sfondo e in coda in questo pool di thread.
‫D Esistono solo minacce in background.
‫E l'altro punto da considerare è quando la minaccia da riutilizzare è una minaccia, quello che abbiamo visto qui,
‫quindi riduce la minaccia, è che abbiamo visto questo ID gestito dalla minaccia.
‫È stato riutilizzato molto, quindi il pool di minacce non cancella i dati nell'archivio locale delle minacce.
‫Pertanto, quando un metodo esamina la minaccia, l'archiviazione locale, i valori che trova potrebbero essere rimasti da un precedente utilizzo
‫della minaccia del pool di minacce.
‫Quindi questo è qualcosa che dobbiamo considerare.
‫Condividerò un link con te.
‫Possiamo leggere di più sui pool di minacce e in generale.