Salve, questo è che non vogliono fare nell'ultima lezione.
Abbiamo visto che non siamo riusciti a finire i thread degli indicizzatori che stavano aspettando blocchi intrinseci.
Questo è un metodo che può ottenere metodi sincronizzati e rigore sincronizzato in questa lezione.
Vedremo come risolverlo utilizzando i lock espliciti introdotti in Jollof.
È un avanzato o grande in attesa di tali blocchi sono interrompibili.
Iniziamo guardando un modo comune di utilizzare blocchi espliciti come la sincronizzazione.
Vengono anche utilizzati per controllare l'accesso alle risorse condivise mordendo più minacce.
Qui abbiamo l'interfaccia di blocco dal pacchetto Jawahar dot dot com corrent dot blots e re-entrant
block è una classe dello stesso pacchetto che implementa l'interfaccia di blocco prossimo blocco è richiesto invocando
il metodo di blocco.
Poi abbiamo una sezione critica protetta dal blocco sotto la serratura di Varney e in un blocco
definitivo invocando lo sblocco di Norf non documentato non viene fatto in un blocco finale, quindi il blocco non verrà mai
rilasciato.
Se un'eccezione viene lanciata nella sezione critica sarebbe pericoloso poiché potrebbero esserci altre minacce in
attesa del rilascio del blocco.
Quindi è fondamentale rilasciare il blocco in un blocco finale.
Non metterlo in Glock.
Vengono rilasciati automaticamente quando usciamo dagli orologi sincronizzati.
Quindi dobbiamo stare attenti a non dimenticare lo sblocco quando si tratta di blocchi espliciti.
E qui è l'interfaccia rock il metodo di blocco come abbiamo visto nella luce precedente viene utilizzato per l'acquisizione di un blocco di
blocco interrompere il bleep è quello che abbiamo bisogno di risolvere il problema nel segmento precedente.
E osservando una traccia acquisiremo il blocco a meno che la minaccia non venga interrotta o se quel blocco
non sia disponibile.
Fondamentalmente se una minaccia è in attesa di un lock richiamando questo metodo, può essere interrotta da un'altra
minaccia richiamando il metodo di interrupt.
L'anatra ha finito per far scattare un'eccezione sulle attuali minacce che lo stato interrotto viene cancellato.
Non che questo annullamento interrotto l'eccezione di reimpostazione in protezione noi accadrà anche se finito che
è già stato ingroup su questa minaccia e quindi successivamente questo metodo di blocco in che in modo
ottimale è in più prossimo lotto descry.
Terzo, qui c'è la serratura.
Solo se è disponibile è disponibile il lock è piuttosto un nickel viene restituito altrimenti costringe un
ritorno sul metodo restituisce immediatamente.
Il prossimo è il tipo di nozione di blocco della cassa come si potrebbe aver intuito che il blocco è silenzioso.
Se è gratuito ma poi restituito tutto sulla minaccia attuale non è stato interrotto.
Quindi il tempo di attesa è specificato come il primo, ma io sono una sporcizia sull'unità del tempo di
attesa come secondo parametro se il tempo di attesa trascorre e il blocco non può essere acquisito.
Quindi questo metodo scritto fino a quel punto non desiderato è anche il turno se il blocco non è
disponibile, e non è come bloccare il limite che questo metodo è anche sensibile all'interruzione. Il terzo è che, come sappiamo,
è davvero un deadlock.
Ora una cosa da notare è che esiste questo concetto di acquisizione chiamato costo di mantenimento artistico associato a
ciascun blocco, indipendentemente dal fatto che il blocco sia un blocco esplicito intrinseco o rientrante.
Se un terzo acquisisce un blocco invocando il metodo di blocco o inserendo un blocco sincronizzato, il vecchio codice
verrà impostato su uno dello stesso thread che contiene il blocco.
Nelle passeggiate questo metodo di blocco ancora una volta.
O se entra e il metodo sincronizzato in caso di blocchi intrinseci allora l'intero conteggio
sarebbe incrementato di 1.
Allo stesso modo se quella rotta coinvolge il metodo di sblocco o esce dal blocco
sincronizzato, allora il conteggio dell'arresto verrebbe decrementato di 1 e poi su tutto il paese solo la riga quindi la
serratura sarebbe la logica di rientro di Tardis in atto a destra avendo un blocco non può inserire un blocco sincronizzato
che utilizza lo stesso blocco.
Infine invocando una nuova condizione sul builder di oggetti di blocco e un'istanza di condizione che è
anche un'altra interfaccia.
E cosa hai detto al dottor concorrente pacchetto di lock come il trattamento che un
oggetto condizione consente a un thread di sospendere l'esecuzione fino a quando non viene notificato da un altro interprete,
quindi una condizione è una sostituzione per metodi oggetto come Notifica notifica e che include metodi come 8 segnale e segnale
attivo.
OK.
Più avanti nella demo vedremo come possiamo usare condition object, ma l'interfaccia di lock di implementazione di
Cottle deve fornire semantica di visibilità della memoria sim come intrinseca a Oxx.
Quindi questo è un requisito da quelle ossificazione nella falsa luce che abbiamo istanziato un blocco di rientro
e ha questi due costruttori.
Il secondo costruttore include un parametro booleano.
Artificiale.
E se passa, vuoi questo barometro?
Significa che i dati ottengono l'accesso al lucchetto nell'ordine in cui lo hai richiesto.
E se passiamo un falso, significa che le minacce potrebbero non avere accesso al blocco nell'ordine
in cui hanno richiesto.
Questo è se una minaccia richiede Similac e se in quell'istante di tempo è disponibile il blocco, il terzo ottiene
il blocco.
Anche se ci sono già altre minacce in attesa di quel blocco, molte rocce sono già state prese.
Quindi la minaccia deve unirsi alla coda dietro altre minacce in attesa per impostazione predefinita e questa opzione
è per noi.
Quindi, nel primo costruttore che non ha alcun parametro equivale a invocare il secondo
costruttore il cui falso dice che l'argomento non ha naturalmente un'opzione non corretta è l'opzione predefinita suona come
non etica.
Ma praticamente per le prestazioni presenta è perfettamente bene ottenere peso Lawks viene fornito
con il sovraccarico di sospensione in ripresa.
Questo è se è disponibile una richiesta di blocco e sblocco, quindi sospendere tale minaccia solo in modo
che qualche altra gola a battuta ottenga quel blocco dopo la ripresa influisce sulle prestazioni.
In pratica sembra che sia abbastanza buono fino a quando un thread di blocco ottiene il suo
blocco in un determinato momento solo l'eccezione e l'opzione fairness potrebbero essere buone per un periodo relativamente
lungo.
Infine, sappi che anche le serrature intrinseche non producono alcun forno GALANTES, quindi l'ingiustizia sembra andare bene
qui.
Il prossimo è che legare per rispondere a questa domanda se preferiamo re-entrant o C-Class.
Si raccomanda di usare intrinseche come sono familiari e ampiamente utilizzate.
Anche i blocchi intrinseci vengono automaticamente rilasciati con blocchi espliciti.
Potresti dimenticarti di rilasciare il lucchetto e ciò sarebbe pericoloso, nel senso che intendiamo come altre
minacce lo leggono e che aspetteranno per sempre.
Prestazioni successive perché i blocchi intrinseci sembrano quasi equivalenti ai blocchi rientranti.
Tuttavia 5 blocchi di rientro delle prestazioni sono molto meglio dei blocchi intrinseci in Java 6.
L'algoritmo per la gestione dei blocchi intrinseci è stato migliorato a causa del quale non c'è molta
differenza tra i due.
Ora qui sto solo specificando il Djala 6 ed è perché questo materiale deriva dal Java Concurrency in
pratica e quel libro è stato rilasciato nel periodo che presumibilmente ha detto.
Ecco perché specificherò il 6 luglio, ma sono sicuro che ciò valga anche per gli altri oceani di Java. Hanami puoi andare
per il rientrante Glock's se hai bisogno di funzionalità aggiuntive come quella interruzione mentre scrivi Portlock perché
quello che vedremo nel nostro anche la demo non è un blocco di rientranti più grande, proprio come nel caso
dei blocchi intrinseci.
Quello che otteniamo è un blocco di mutua esclusione standard che è solo un thread alla volta che riesce a tenere il
blocco, ma questa strategia di blocco è un grosso problema quando consideriamo determinati scenari in cui è corretto che
più thread mantengano il lotto allo stesso tempo.
Ad esempio, possiamo avere una risorsa condivisa a cui è possibile accedere da più minacce di
morte o da un singolo thread pilota, ma non mettere questo caso in cui più thread possono leggere contemporaneamente la
strategia di blocco dell'esclusione reciproca del blocco rientrante non funzionerà.
Quindi abbiamo bisogno di una concorrenza migliore qui e ciò può essere ottenuto tramite un blocco di scrittura in lettura, che è anche dalla figlia
di Jawan e dal pacchetto Oxx della nipote per raggiungere i dati critici.
Acquisirai innanzitutto il blocco di lettura richiamando il metodo di redraft.
Analogamente per modificare i dati, si acquisirà il blocco corretto invocando il metodo giusto.
La classe che implementa questa interfaccia è corretta e Krant legge il blocco di scrittura.
Quindi dovresti creare un'istanza di questo blocco.
OK, quindi il precedente senza serratura che abbiamo visto era solo un blocco rientrante e non era d'accordo e leggeva la legge
sulla riscrittura.
Penso che se sei interessato puoi leggere di più su di esso dagli strofinacci nelle specifiche
del rapporto.
Andiamo avanti e guardiamo a ciò che abbiamo imparato in azione.
OK.
Questa è una grande interruzione non definita ma incompleta.
Quindi questa era una lezione che abbiamo visto nella demo precedente.
OK, quindi abbiamo detto che una limitazione di questa particolare classe è se un thread è in attesa qui nell'indicizzatore
se le minacce sono in attesa di un lock intrinseco.
Quindi in quel caso non possiamo interrompere.
Destra.
Questa è stata la ragione per cui siamo in questa conferenza.
Quindi stiamo guardando le serrature esplicite.
Quindi quello che abbiamo fatto è che ho copiato questo codice in questa nuova classe chiamata blocchi espliciti.
Interruzione perché abbiamo a che fare con blocchi espliciti Ho già esteso questa classe in una certa misura.
Andi scriverà anche del codice per risolvere il problema.
Quindi questa è la nuova classe.
So che stiamo solo istanziando qui nella principale interruzione esplicita del fabbro.
Quindi andiamo avanti e guardiamo alcune modifiche che sono già state fatte.
Quindi qui nella testa di metafora di Nagumo, terzo, stiamo leggendo tutte le divagazioni.
Quindi quello di cui abbiamo bisogno è una serratura.
Destra.
Quindi stiamo creando questa istanza di blocco qui.
Blocco di rientro e se ricordi nella lezione ho detto che se invochiamo una nuova condizione, allora
restituirei un oggetto condizione condizionale in modo che io lo chiami condizione di pesca.
OK, quindi queste sono le cose che abbiamo che non sono nel costruttore.
Prima stavamo passando solo bolle non blu che in realtà hanno superato il blocco su
ogni condizione solo notando che questa condizione proviene effettivamente dai missili.
OK, quindi usando l'oggetto serratura stiamo generando questa condizione di spiaggia OK secondo la legge.
Guarda un po 'di più su questa condizione e su quella e anche di più.
Quindi stiamo passando questi due nuovi oggetti bloccati a condizione che il downloader della scheda, così
come in Nixa e il resto del cavo, siano esattamente gli stessi che stiamo nascondendo alle nostre minacce.
Uno per.
Non fidarti dell'altro per l'antrace e stiamo solo parlando qui e stiamo aspettando la scoperta in millisecondi.
OK.
Prima pensavo che fosse un secondo.
Così l'ho fatto per trovare in millisecondi mezzo secondo.
E stiamo anche facendo la stessa cosa
Se il tempo è scaduto allora vogliamo interromperlo scaricando le tracce.
Destra.
Quindi stiamo usando questo metodo per l'interruzione.
Stiamo solo invocando l'interrupt solo sugli indicizzatori.
Destra.
OK, quindi ripetiamo di ridurlo a mettere meno a rischio la minaccia.
Ma stiamo invocando solo finito sull'indice.
Destra.
E che usando quell'interruzione stiamo andando indirettamente a cadere morto in pista.
Quindi questo era tutto nella demo precedente.
Ora qui nei constrictors Quindi, dal momento che stiamo passando Locke a condizione di pagina, quindi abbiamo bisogno di inizializzarli.
Quindi abbiamo qui due variabili e le stiamo inizializzando sulla stessa cosa che accade qui anche nel
thread dell'ordine.
Quindi OK, è esattamente la stessa cosa.
Condizione della pagina invocata qui nella parte in the constructor.
Ora torniamo al thread dell'indicizzatore.
Quindi, in precedenza, abbiamo solo vagato il modo in cui questo chiamato C sincronizzato.
OK, quindi il blocco dell'occhio ha un singolo blocco su quello è il blocco intrinseco.
Quindi ogni terzo che viene qui deve acquisire quel blocco per entrare nel blocco sincronizzato.
E se la pagina di Decimo è uguale a nessuna, allora dobbiamo rinunciare alla serratura.
OK, in questo modo si ottiene invocando il metodo sullo stesso oggetto di ribellamento perché
dovremmo rilasciare lo stesso blocco.
OK.
E ciò sarebbe possibile solo se invochiamo il metodo del tasso su questo particolare oggetto che è
l'oggetto che viene usato qui in questa incarnazione.
OK, questa è una cosa.
L'oggetto So Webling è la cosa comune tra sincronizzare un po 'qui o qui e non
eccitante e liberare il marito come e il non fare il thread qui.
Entra nel blocco sincronizzato.
E anche per modificare Ed una volta che su Lurida una volta che il processo è completato anche qui stiamo
usando no.
Quindi, poiché questo è il blocco comune, dovremmo fare la stessa cosa per il blocco esplicito.
OK.
Quindi eravamo in strada e Dalek's in punto.
Quindi dovremmo lavorare nel metodo ivied nella condizione.
E la condizione è già generata dal blocco utilizzato invocando la nuova condizione e dobbiamo avviare
la notifica che è un problema chiamato segnale e dobbiamo usarlo.
Quindi deve essere legato allo stesso blocco, indipendentemente dal fatto che sia intrinsecamente attivo o che si
tratti di blocco percentuale x.
Quindi penso che sia abbastanza buono ora andiamo avanti e facciamo i cambiamenti che dobbiamo fare.
Quindi andiamo avanti e cominciamo con l'indice proprio qui.
Quindi non abbiamo più bisogno di sincronizzare.
Quindi facciamo il dott. Chi.
Quindi è comune che fuori e quello è.
Quindi abbiamo già pronto il blocco in modo tale che prima lo svantaggio fosse che non eravamo in grado di
interrompere questo particolare e risuonava qui.
Diciamo il lucchetto ininterrottamente giusto perché si blocca rapidamente.
Questo è ciò che ci aiuterà ad avvolgere questa tendenza.
Ora mettiamola finalmente qui perché la cosa più importante è sbloccarla.
Destra.
Se non stai sbloccando, sarà pericoloso perché altre minacce fatte per questo ti aspetteranno
per sempre.
Beh, immagino, ecco una cosa in modo che possano scendere.
Ora qui lasciatemi commentare questo e diamo un'occhiata alla condizione che una nazione è stata nominata condizione di aspirati.
La variabile che abbiamo usato lì per vedere un modo di suggerire la materia di peso è sostituita con una
velocità che stiamo facendo in condizioni di base.
Quindi è quello che dobbiamo fare.
Quindi molto semplice.
Ora un'altra cosa che devi fare qui è che viene generata un'eccezione ininterrotta perché diciamo che
un terzo sta leggendo qui se Greenwell è il metodo dell'interrupt.
Quindi genererebbe un interrupt o un'eccezione nel qual caso la minaccia non è come il blocco.
OK, quindi se invochi lo sblocco in quel caso, vogliamo ottenere un'eccezione di monitoraggio illegale della scheda di eccezione.
È bello sentire che penso che non lo mostri qui.
Quindi l'eccezione arretrata sarebbe genitor.
Quindi, in questo caso, faresti solo se tu come se sei in possesso del gate di blocco, ma un trigger diverso genera un'eccezione
rispetto a te vuol dire che non hai il blocco.
OK, quindi dobbiamo fare una cosa che dobbiamo fare come se fosse generata una sezione interpretata.
Se ricordi cosa sta accadendo, lo stato interrotto viene cancellato, il che significa che è fatto per noi.
Quindi, quello che dobbiamo fare è che dobbiamo farlo ancora una volta.
E se questo è vero, non è necessario sbloccarlo.
Destra.
Perché non c'è il blocco.
Quindi dobbiamo accertarci che il perseguimento di regole rigide
e il modo in cui lo faremo invocando nuovamente l'intero metodo OK.
Così.
Quindi se stai venendo qui significa che è stato interrotto in un'interruzione.
Ma poi lo stato fa è anche resettato.
Quindi è necessario impostarlo di nuovo.
E se lo ha detto di nuovo nel blocco finale, come questa commissione
viene interrotta sarà vero per questo gruppo.
Significa che non dovremmo invocare questo metodo solo se è falso.
Eravamo in agosto.
Se è falso significa che l'esecutore della sezione critica ha avuto successo.
E così abbiamo il lucchetto e dovremmo sbloccarlo.
Quindi questa è una cosa che dobbiamo fare qui.
Quindi questo è tutto.
E ora andiamo al commercio di droga in questo ordine.
Inoltre abbiamo
questo OK così sincronizzato è chiuso.
Ora la dichiarazione di blocco può essere qui.
Non è necessario che ci sia all'interno del blocco try nell'altro terzo che abbiamo
nel blog perché ci eravamo o stavamo invocando un metodo interrompibile che potrebbe generare un'eccezione.
Quindi qui non ne abbiamo bisogno.
Quindi possiamo solo seguire questo metodo di blocco se non facciamo come avvolgere questo.
Quindi questo è il thread in background e lo stiamo usando in modo indiretto per chiudere o interrompere questo thread
chiudendo il flusso.
Quindi, ecco un link web quindi non abbiamo più bisogno di questo.
Accesso OK.
Quindi questo è il metodo che invocheremo presto, in modo da renderlo un segnale.
OK.
Quindi questo è tutto quello che c'è qui.
Ora quello è interrompibile.
Quindi andiamo avanti e gestiamo questo.
Quindi è fatto qui.
Allora eccoci qua.
Le minacce del downloader sono state e stanno cercando di scaricare.
Nel frattempo da quando abbiamo iniziato solo per mezzo secondo il tempo è scaduto.
Quindi abbiamo bisogno di ciò che abbiamo bisogno per fermare le minacce.
Quindi qui stiamo dicendo che il Donard è una minaccia per l'idea di quelli ed è ancora attivo.
Quindi lo stiamo fermando.
E il bambino sta ancora cadendo, mentre siamo a Woking nella drammaturgia sulla pista degli indicizzatori.
OK.
E questo sta per lanciare un annuncio che genererà un'eccezione
un'eccezione perché stiamo aspettando qui perché stiamo aspettando qui sull'orologio e viene generata un'eccezione.
E così veniamo qui e per prima cosa interrompiamo il download o il terzo in modo indiretto
impostando lo stato gobstopper qui sul thread in background che stiamo generando nel download o che chiuderà il
flusso.
Questo potrebbe far scattare il telefono o provare a proiettare quello che abbiamo visto nell'ultimo giorno e questo
è il più che abbiamo appena sentito e lo stiamo solo sbloccando.
Ecco cosa sta succedendo qui e stiamo facendo la stessa cosa anche per il 2001 2002.
Sono anche interrotti e qui per il 2003 è stato interrotto, ma il processo di download continua e
ha completato.
Va bene.
Quindi in quel caso quando stavamo cercando di interromperlo nello stesso momento in cui il Donard è
completo ma va bene.
Quindi qui chiaramente dice che stiamo chiudendo il flusso.
Quindi nel campo del clean up stiamo invocando la seconda tappa qui.
Facendolo, chiudiamo il flusso nel thread in background nel thread del downloader.
Ok, quindi stiamo attraversando il flusso e per questo qui stiamo dicendo che non può essere scaricato perché lo
stream è stato chiuso.
E la stessa cosa sta succedendo anche per le divagazioni sul web.
2001 e 2002.
Ecco come viene fatto in modo esplicito Rops sta aiutando l'interruzione di Lustral.
Ora l'unica cosa che voglio dire è quando stiamo invocando il tocco sincronizzato.
Quindi, fondamentalmente tu sei dentro per questo intrinseco Lockerby proprio come uno.
D E tutte le minacce che stanno cercando di entrare in questo blocco ci aspetteranno.
In coda ma con blocchi espliciti, quindi stiamo generando la condizione richiamando la nuova condizione.
E in sostanza possiamo avere più di una condizione.
Quindi, ciò significa che se abbiamo più di una condizione, ciascuna condizione corrisponderebbe a una.
Q Il che significa che più tracce possono essere in attesa in quegli anni.
Quindi non deve essere solo uno.
Q Come nel caso del blocco intrinseco, ma può essere costituito da più segnali e dati
consente di passare semplicemente al documento API dell'interfaccia Condition Clock in pochi secondi fa ho menzionato che è un cristallo diretto immettere
un blocco sincronizzato e se il blocco è non disponibile allora sarà fantastico nella coda corrispondente
al blocco intrinseco.
Quindi nel nostro caso abbiamo Hauert sincronizzato con il balbettio.
Quindi il lampeggio è un oggetto e ha un blocco intrinseco che è associato al suo.
Dunque è giusto, ma il fatto che tu avessi pensato che io volessi differire era un altro.
Q Quindi è stato un errore per mia zia.
Fondamentalmente l'oggetto bubbling ha anche il metodo del peso che inibisce dalla classe dell'oggetto.
Proprio sotto trattamento che è anche associato a questo.
Q E questo è chiamato come condizione.
D Perché un testo dovrebbe entrare in quella particolare vista a causa del fatto che alcune condizioni sono vere.
Quindi nel nostro caso la condizione è vitale Cecenia m. p. h. è uguale o no.
Quindi in quella situazione l'indice lo diceva e poi sarebbe andato benissimo e grande nella condizione
corrispondente.
Quindi, perché la pagina non è ancora stata scaricata e non può indicizzarla.
Quindi la condizione aveva le pagine di Steimle che chiamava null. Ci si chiama in buone condizioni sotto di te in
cui si classifica.
Il terzo rating è chiamato come condizione Q e A Different That to in non sarà limitato per far
sì che questa setta si svegli in un blocco silenzioso.
E le sue azioni successive.
OK, quindi abbiamo avuto una sola condizione.
Q Sono una singola condizione piuttosto buona.
Ora qui diamo un'occhiata a un esempio qui e questo è dove abbiamo molte condizioni piuttosto buone.
Oggetti di condizione non magici.
Quindi qui è un legame Moher.
Quindi è il quartiere di Miskin con elementi della trama ma è legato, il che significa che non possiamo
avere più non possiamo aggiungere più elementi della palla specificata che è 100 e questo è e dobbiamo
montare questo libro su Big metti tutto questo inserendo elementi come per rimuovere elementi.
E qui ci sono due condizioni piuttosto buone.
Quindi è un trucco giusto.
Chi vuole aggiungere un elemento.
Quindi entra in questa faccenda.
E se vede questa condizione dove dice che ma il buffer è pieno.
Nel qual caso non può.
Deve attendere che sia disponibile spazio.
Quindi c'è.
Quindi questo è abbastanza buono.
E c'è un oggetto condizione corrispondente ad aggiungere qui.
È nella condizione Q corrispondente a questa particolare condizione.
Quando Access ho letto la stessa cosa succede qui è il terzo e durante il trattamento che.
E se trova che il buffer è vuoto.
In quel caso entrerebbe nella condizione.
Un oggetto condizione diverso su entrambi gli oggetti condizione sono generati dallo stesso blocco.
Quindi questo è quello che abbiamo qui e se un thread sta leggendo qui OK.
Perché il buffer è vuoto.
Ora qui è se un altro thread è in grado di aggiungere un elemento, allora sarà nel caso del
segnale che costituirà questa particolare minaccia e possiamo anche avere predicati multi-condizione multipla ma una singola
condizione che sia anche possibile.
Ora lo svantaggio con questo tipo di configurazione è che a causa di un ordine ingiusto c'è la
possibilità che possiamo fare come si scommette su più predicati di condizione allo stesso tempo.
D E se invochiamo e notifichiamo tutto il nostro segnale, allora una delle minacce verrà riattivata e acquisirà
la condizione di blocco piuttosto che potrebbe non essere dura.
Deve essere tutto vero
E così potrebbe tornare ancora una volta ogni giorno.
OK, questo è lo svantaggio.
OK.
Ma qui stiamo lavorando su valutazioni di minacce legali piuttosto che su una particolare condizione.
Quindi, questa condizione sarà abbastanza buona e può fare altre azioni e altre azioni successive.
Quindi invocheremo il rischio del giusto tipo di minaccia.
Quindi questo è un vantaggio.
E il secondo vantaggio è che possiamo invocare solo il metodo del segnale piuttosto che il segnale attivo.
Se noi abbiamo un oggetto condizione associato a ciascuna condizione piuttosto bene.
Quindi possiamo lavorare sul segnale e cantare e il segnale è lì per essere più efficiente.
Quindi questo è tutto.
Quindi mi chiedo solo che puoi anche leggerli qui.
I blocchi così raffinati sono funzionalità più avanzate e in un modo che abbiamo visto è utile che
in interrupt se vogliamo interrompere un thread in attesa su un orologio, allora è possibile.
Quindi questo è tutto.
Grazie.
Buona programmazione.