‫Welkom terug en deze video, we gaan naar threads kijken en daarom gaan we gewoon het basisconcept van threads doen,
‫waar je zult zien hoe je een thread kunt maken en hoe je meerdere threads kunt
‫maken.
‫Dus laten we aan de slag gaan door de rechterregel van de console op deze specifieke manier te gebruiken.
‫Dus ik ga meerdere werelden creëren, bijvoorbeeld vier van hen, en ik ga hallo, wereld
‫één, hallo, wereld twee, drie en vier zeggen.
‫Dat zijn dus de werelden.
‫Als we ze uitvoeren, hebben we natuurlijk allereerst console-reline nodig.
‫Dus de console blijft open en blijft wakker.
‫Als we ze uitvoeren, is het heel basaal wat er gaat gebeuren.
‫Dus ze gaan gewoon vier keer Hello World op het scherm afdrukken en we hebben een wereld één, twee, drie
‫en vier.
‫Oke.
‫Dat is dus niets nieuws.
‫Dat hebben we al vaker gezien.
‫Er is iets dat thread wordt genoemd, een klasse die thread wordt genoemd.
‫En als we het willen gebruiken, moeten we de threading namespace gebruiken.
‫Dus het gebruik van system dot threading en dat is alles.
‫Dus nu kunnen we threads gebruiken, zodat ik door kan gaan en de thread-klasse kan gebruiken en, zoals je kunt zien, een thread
‫maakt en beheert, de prioriteiten ervan instelt en de status ervan krijgt.
‫Dus wat we nu kunnen doen, is bijvoorbeeld draad gebruiken die een beperkte tijd slaapt.
‫Dus laten we zeggen voor 1000 milliseconden.
‫Dus dat is voldoende, het pauzeert ons hele programma of onze thread in dit geval, de belangrijkste dreiging
‫of de dreiging waarin het zich bevindt gedurende één seconde na hoe het woord één op het scherm werd afgedrukt.
‫En dat kunnen we eigenlijk doen na elke afzonderlijke verklaring.
‫Dus ik ga zeggen: slaap voor een bepaalde tijd.
‫En daar zijn we dan.
‫Hallo.
‫We zijn een, twee, drie en vier.
‫Het stopt dus als ik erop klik.
‫Maar over het algemeen kun je zien dat het een seconde wachtte en na die seconde het volgende afdrukte.
‫Dus wat het gewoon doet, het stopt echt de hele thread, dus schort de huidige dreiging op voor een
‫specifiek of gespecificeerd aantal milliseconden.
‫Dus dat is iets dat je kunt doen als je iets na een bepaalde tijd wilt doen.
‫Maar houd er rekening mee dat dit de belangrijkste bedreiging echt stopt.
‫Er hoeft dus niets gedaan te worden, laten we zeggen, in de UI-thread.
‫We gebruiken hier geen gebruikersinterface.
‫We gebruiken in dit geval een consoletoepassing.
‫Maar als je bijvoorbeeld WP gebruikt om een UI te hebben en je de hoofdthread één seconde ontleedt, betekent dat
‫dat de UI een hele seconde niet reageert.
‫En dat is iets wat de gebruiker niet wil.
‫En dat zal heel slecht gedrag zijn dat je niet zou moeten doen.
‫Maar dat is over het algemeen alleen voor jou om te begrijpen wat je kunt doen met threads hier, toch.
‫U kunt dus gedurende een bepaalde tijd een bedreiging vormen.
‫Maar we gebruiken slechts één draad.
‫Het is de belangrijkste bedreiging.
‫En als je er meer over wilt weten, moet je debuggen.
‫En om dat te doen, voegen we hier een punt toe.
‫Dus gewoon om het punt te debuggen waar je gewoon op die balk hier aan de linkerkant drukt, laten we zeggen
‫voeg regel negen toe waar de hoofdmethode begint, en dan start je het programma en zoals je kunt zien, wordt er niets weergegeven
‫omdat het hier pauzeert .
‫Dus dat is waar we momenteel zijn.
‫Daar staat de cursor.
‫En om nu de taken te zien, moeten we naar foutopsporingsvensters gaan en vervolgens hier bedreigingen selecteren.
‫Of u kunt op control all H drukken.
‫Dus ik ga draadjes openen.
‫En zoals je kunt zien, zweven ze nu voor mij en ik zal ze hier aan de linkerkant
‫plaatsen.
‫En nu kun je de threads zien die worden uitgevoerd.
‫En in ons geval zien we alleen de rode draad.
‫Er is dus maar één thread en het heeft een beheerd idee van nul.
‫Dus dat is onze belangrijkste bedreiging en het doet over het algemeen alles wat binnen onze hoofdmethode valt.
‫Dus als ik naar de volgende stap ga.
‫Zoals je kunt zien, zitten we nog steeds in de rode draad en we wachten een seconde, we zien hoe de wereld eigenlijk als we hem
‫openmaken, ze het kunnen zien.
‫Dus nu is het een totale wereld.
‫Drie, we slapen een seconde en dan wacht het uren om de volgende stap te gaan, zodat je er 10 hebt om naar
‫de volgende stap te gaan.
‫En dan wordt Helliwell een seconde later weergegeven.
‫Ja, daar zijn we allemaal voor.
‫En dan komt deze rode lijn naar voren.
‫Dus nu ga ik gewoon op iets drukken als enter of wat dan ook en hier en ga naar de volgende stap.
‫En zoals je kunt zien, zijn we nog steeds in de grootste dreiging.
‫En ons programma sluit, dus geen bedreiging meer, dus dat is goed en zo, maar dat is gewoon onze grootste bedreiging en dat is
‫een beetje saai.
‫We willen zien hoe we discussielijnen kunnen maken, en daarvoor zijn we hier.
‫Dus laten we doorgaan en zelf meerdere bedreigingen creëren, want wat hier gebeurt, is dat het opeenvolgend
‫wordt gedaan.
‫Dus stap voor stap, de ene rij na de andere.
‫Maar als we dingen parallel willen doen, kunnen we onze eigen thread maken omdat we niet willen dat deze in
‫de hoofdthread loopt.
‫Maar we wilden parallel lopen.
‫Dus wat ik ga doen, is dat ik hier een nieuwe bedreiging ga creëren.
‫Ik ga gewoon nieuw zeggen, dan noem ik het bedreiging.
‫Dus ik gebruik hier alleen de dreigingsclausule.
‫En je hebt weer beugels en beugels nodig.
‫En na die haakjes, de tweede hier, gebruik je gelijke en grotere sinus- en accolades.
‫En dan nadat de beugel hier is gesloten, moet je beginnen.
‫Dus zo begin je een draadje.
‫Dus ik heb een nieuw draadje aangemaakt en het begint meteen omdat ik roep om hier te beginnen.
‫Dat is gewoon de startmethode die ons het besturingssysteem aanroept om de status van de huidige instantie te wijzigen
‫in de threadstatus die wordt uitgevoerd.
‫Dus deze thread zal deze threadstatus hebben, wat betekent dat het gewoon alles binnen
‫de accolades zal uitvoeren.
‫Dus daar kunnen we onze code toevoegen die we willen uitvoeren wanneer deze dreiging wordt aangeroepen.
‫Dus laten we zeggen dat deze draad hier onze draad is.
‫Dus ik ga gewoon iets schrijven als Thread één, CW thread één.
‫En bovendien ga ik nog even slapen.
‫Dus slaap 1000 milliseconden, dat is één seconde.
‫Dus dat is wat dit draadje gaat doen.
‫En wat ik ga doen is dat ik meerdere threads daaronder ga plaatsen.
‫Dus draad een, twee, drie en vier.
‫Dus ik ga ze hernoemen en ik ga commentaar geven.
‫Degenen die we eerder hadden, dus de console klopt aan en laten we het nu uitvoeren.
‫En daar zijn we dan, zoals je kunt zien, het kwam allemaal tegelijk naar boven, dus het wachtte een
‫seconde en toen kwamen ze allemaal tegelijk.
‫Dus wat gebeurde daar?
‫Laat me hier echt op dat punt ingaan en misschien het punt.
‫Ja, daar.
‫Dus laten we het opnieuw uitvoeren.
‫Nu zien we dat ons programma hier stopt, dus dat is waar het is, maar
‫tegelijkertijd kun je hier in het threadvenster hier onderaan zien dat er al twee threads zijn geopend en een werkthread
‫zonder naam.
‫En nog een arbeidersbedreiging zonder naam.
‫We hebben dus een nieuwe dreiging die al actief is.
‫En dan wordt ook een van de andere bedreigingen geopend.
‫En zoals je kunt zien, ook de belangrijkste bedreiging.
‫Er zijn dus drie bedreigingen tegelijk.
‫Laten we nu naar de volgende stap gaan.
‫Zoals je kunt zien, zijn er op dat moment plotseling vier bedreigingen.
‫En dat is dus de vierde die we hier hebben.
‫Dus toen de eerste begon, was misschien de tweede al klaar, maar de andere waren nog niet
‫klaar.
‫En nu, op het punt waar de dreiging duizend milliseconden verstrijkt nadat één milliseconde of zelfs minder is verstreken, kun
‫je zien dat de andere bedreigingen al zijn begonnen.
‫We hebben dus vier threads tegelijk.
‫Dus we hebben hier een multi-threading-oplossing.
‫En als ik de volgende stap doe, nou, zoals je kunt zien, worden bedreiging twee, drie en vier al weergegeven.
‫Maar console rechterlijn dreiging één, zoals je kunt zien, wordt nog niet weergegeven.
‫Ze lopen dus wel parallel, maar ze zijn niet perfect nauwkeurig, zoals je kunt zien.
‫Er kunnen dus kleine verschillen zijn in de tijd dat ze moeten worden uitgevoerd.
‫Dus ik ga naar de volgende stap zoals deze weg hier.
‫En zoals je nu kunt zien, is dreiging één ook gedaan.
‫Dus ondanks de bedreigingen.
‫Staan in een specifieke volgorde hier, in mijn code, ze worden min of meer tegelijkertijd gestart en zoals je kunt
‫zien, hoeft het niet in de exacte volgorde te zijn zoals we dachten.
‫Het zal dus niet worden afgewerkt in de exacte volgorde waarin we ze hier hebben geplaatst.
‫Maar gebaseerd op hoe snel ze de code konden afmaken of uitvoeren.
‫Het kan dus voorkomen dat deze code iets langer nodig heeft dan die ene of juist veel langer dan de andere.
‫Dus dat is wat je eruit moet halen, zodat je met bedreigingen kunt werken, maar je moet heel, heel
‫voorzichtig zijn, want er zijn mogelijk meerdere dingen die fout kunnen gaan.
‫En ik ga er een paar behandelen en ik ga je laten zien of geven en ik ga er een paar
‫behandelen.
‫En ik ga ook links met je delen.
‫Daar kunnen we nog veel meer in lezen.
‫Dus dat is ongeveer het basisidee van het creëren van bedreigingen.
‫Zoals je kunt zien, kun je zo dingen instellen.
‫Bedreigingen zijn dus over het algemeen een klein stukje werk of een stukje werk dat wordt uitgevoerd en je
‫kunt meerdere dingen tegelijk uitvoeren als je meerdere gangen in je processor hebt.
‫Dus laten we zeggen dat je een processor met vier kernen hebt, dan kunnen er vier threads of vier
‫processors tegelijk worden uitgevoerd.
‫Als je, laten we zeggen, maar één processor hebt, dan kan er maar één thread of één taak tegelijk worden uitgevoerd,
‫zal het nooit gebeuren dat ze parallel worden uitgevoerd omdat deze ene processor maar één specifiek ding
‫tegelijk doet.
‫Dat betekent dat als je weet dat je met een multicore-processor werkt of je applicatie op
‫een multicore-processor draait, je met meerdere dreigingen kunt werken.
‫Anders loop je tegen problemen aan.
‫Maar hoe het over het algemeen werkt, als je maar één kern hebt, wordt de hoofdthread uitgevoerd.
‫En alleen als de belangrijkste dreiging inactief is, zal hij doorgaan en andere dingen doen, zodat hij geen andere dreigingen
‫uitvoert.
‫Laten we zeggen dat je een gebruikersinterface hebt en op die gebruikersinterface geef je gewoon dingen weer, je hebt een knop.
‫Als je dan over de knop beweegt, verandert het uiterlijk, dat soort dingen.
‫Dat is iets dat wordt gedaan door de belangrijkste dreiging.
‫Maar als de hoofddreiging niet bezet is, beginnen de andere dreigingen.
‫Dus als je iets hebt dat op de achtergrond moet worden uitgevoerd, dan zal dat dit jaar worden gedaan
‫wanneer dreiging één, de belangrijkste dreiging niet druk is of dreiging nul is.
‫Dus dat gaat over bedreigingen.
‫En we zullen natuurlijk wat meer kijken naar bedreigingen.
‫Maar over het algemeen wilde ik je dat laten zien om te beginnen.