Een toepassing kan bestaan uit meerder processen en meerdere threads, er kan per thread maar 1 proces tegelijkertijd worden uitgevoerd. Op de computer kunnen er meerdere threads tegelijk worden uitgevoerd per toepassing (multi-threading). Dus als een toepassing geen multi-threading gebruikt, kan er maar 1 proces tegelijkertijd worden uitgevoerd.
Hoop dat het een beetje duidelijk is
Hoop dat het een beetje duidelijk is
Verhelderende PDF kan [url="http://"http://www.cs.duke.edu/education/courses/spring01/ cps210/Lectures/lecture8.pdf"]hier[/url] worden gevonden. Kort samengevat: een applicatie kan uit meerder processen bestaan die op hun beurt weer uit meerdere threads kunnen bestaan. Per CPU is er maximaal een thread tegelijkertijd actief.
With the light in our eyes, it's hard to see.
AndersomOp donderdag 30 mei 2002 14:36 schreef woutertjez het volgende:
Een toepassing kan bestaan uit meerder processen en meerdere threads, er kan per thread maar 1 proces tegelijkertijd worden uitgevoerd. Op de computer kunnen er meerdere threads tegelijk worden uitgevoerd per toepassing (multi-threading). Dus als een toepassing geen multi-threading gebruikt, kan er maar 1 proces tegelijkertijd worden uitgevoerd.
Hoop dat het een beetje duidelijk is
Sorry woutertjez, maar ik denk dat je zelf snapt, maar het komt er niet optimaal uit (no offence).
Een proces (applicatie) kan uit meerdere threads bestaan, het is er altijd minimaal 1. Een thread kan maar één ding (taak) tegelijk doen. (En de rest van woutertjez, beetje aangepast:) Op de computer kunnen er meerdere threads tegelijk worden uitgevoerd per toepassing (multi-threading). Dus als een toepassing geen multi-threading gebruikt, kan er maar 1 taak tegelijkertijd worden uitgevoerd.
En: als je meerdere processoren hebt worden de threads over de processoren verdeeld. Threads werken nl. onafhankelijk van elkaar.
Het nut ervan is dat je bijvoorbeeld je User Interface (UI) kunt scheiden van langdurige taken. De verkenner doet dit ook. Als je een bestand aan het kopieeren bent kan je gewoon met dezelfde verkenner verder werken, omdat het kopieeren door een andere thread word gedaan. De (hoofd-) thread kan dan zorgen dat er wat gebeurd als je klikt.
Roep maar als je nog meer vragen hebt.
[edit]
Druk hier
. Terwijl ik druk aan het typen was zijn er meer helpende handen.
Een proces (applicatie) kan uit meerdere threads bestaan, het is er altijd minimaal 1. Een thread kan maar één ding (taak) tegelijk doen. (En de rest van woutertjez, beetje aangepast:) Op de computer kunnen er meerdere threads tegelijk worden uitgevoerd per toepassing (multi-threading). Dus als een toepassing geen multi-threading gebruikt, kan er maar 1 taak tegelijkertijd worden uitgevoerd.
En: als je meerdere processoren hebt worden de threads over de processoren verdeeld. Threads werken nl. onafhankelijk van elkaar.
Het nut ervan is dat je bijvoorbeeld je User Interface (UI) kunt scheiden van langdurige taken. De verkenner doet dit ook. Als je een bestand aan het kopieeren bent kan je gewoon met dezelfde verkenner verder werken, omdat het kopieeren door een andere thread word gedaan. De (hoofd-) thread kan dan zorgen dat er wat gebeurd als je klikt.
Roep maar als je nog meer vragen hebt.
[edit]
Druk hier
Uhmmm.... juist ja.... je hebt gelijk.Op donderdag 30 mei 2002 14:51 schreef The End het volgende:
[..]
AndersomEen process kan meerdere threads bevatten (iig 1)
Had 't niet helemaal netjes op een rijtje toen ik 't op wou schrijven
Dus ik moet eerst een proces starten voordat ik een thread kan starten.Op donderdag 30 mei 2002 14:55 schreef Elissen het volgende:
Roep maar als je nog meer vragen hebt.
"tegelijkertijd" is een moeilijk woord hier. Een compu met CPU kan sowieso maar een ding tegelijkertijd doen, met of zonder MT. Met MT kan de processor doorgaan met een andere thread terwijl bv. de HD bezig is; zonder MT zou het hele programma moeten wachten totdat HD of network I/O klaar is.Op donderdag 30 mei 2002 14:55 schreef Elissen het volgende:
Een proces (applicatie) kan uit meerdere threads bestaan, het is er altijd minimaal 1. Een thread kan maar één ding (taak) tegelijk doen. Op de computer kunnen er meerdere threads tegelijk worden uitgevoerd per toepassing (multi-threading). Dus als een toepassing geen multi-threading gebruikt, kan er maar 1 taak tegelijkertijd worden uitgevoerd.
"Onafhanklijk" in CPU-tijd. Ze gebruiken wel hetzelfde geheugen en dergelijke.En: als je meerdere processoren hebt worden de threads over de processoren verdeeld. Threads werken nl. onafhankelijk van elkaar.
Ik dacht dat dat inmiddels ook niet meer waar was, dat (Win200+/ME) Explorer daarvoor een nieuw proces aanmaakte. Als een thread crasht gaat het hele proces naar de kloten; een apart proces is daarentegen veilig. Maar IHA is een aparte UI thread wel handig - threads kunnen veel makkelijker data uitwisselen (want gedeeld geheugen).Het nut ervan is dat je bijvoorbeeld je User Interface (UI) kunt scheiden van langdurige taken. De verkenner doet dit ook. Als je een bestand aan het kopieeren bent kan je gewoon met dezelfde verkenner verder werken, omdat het kopieeren door een andere thread word gedaan. De (hoofd-) thread kan dan zorgen dat er wat gebeurd als je klikt.
Man hopes. Genius creates. Ralph Waldo Emerson
Never worry about theory as long as the machinery does what it's supposed to do. R. A. Heinlein
Verwijderd
Ja en nee... In principe kan je een proces het beste zien als een groep threads. Een niet multithreaded programma bestaat op die manier dus uit een proces (een ding met een naam, een PID, en dat soort dingen) met daarin 1 thread.Dus ik moet eerst een proces starten voordat ik een thread kan starten.
Het aanmaken van een proces met die ene thread doet je besturingssysteem voor je zodra je je programma opstart. Vanuit je programma kan je meerdere threads maken, starten, stoppen etc. Ook kan je nieuwe processen maken natuurlijk, maar daarover heb je minder controle dan over een thread (een thread draait binnen de context van je proces, dus in dezelfde geheugenruimte. Processen zijn van elkaar afgeschermd, threads niet).
edit:
Om het extra verwarrend te maken heb je in Windows ook nog zoiets als fibers. Dat zijn dan weer threads die niet door de scheduler van 't OS aangeroepen worden...
Om het extra verwarrend te maken heb je in Windows ook nog zoiets als fibers. Dat zijn dan weer threads die niet door de scheduler van 't OS aangeroepen worden...
Ik heb in mijn code de volgende regel staan:
system(start /Dc:\\mrtg-2.9.17\\bin perl mrtg --logging=eventlog mrtg.cfg)
Dan wordt de zaak tussen de haakjes (een snmp daemon) op de cmd line uitgevoerd. Heb ik dan een nieuwe thread of een nieuw proces.
system(start /Dc:\\mrtg-2.9.17\\bin perl mrtg --logging=eventlog mrtg.cfg)
Dan wordt de zaak tussen de haakjes (een snmp daemon) op de cmd line uitgevoerd. Heb ik dan een nieuwe thread of een nieuw proces.
U heeft helemaal gelijk, ik legde het iets te algemeen uit. Maareh, om verschillende vensters van explorer in een apart proces uit te voeren is een optie die standaard uit staat.Op donderdag 30 mei 2002 15:13 schreef MSalters het volgende:
[..]
"tegelijkertijd" is een moeilijk woord hier. Een compu met CPU kan sowieso maar een ding tegelijkertijd doen, met of zonder MT. Met MT kan de processor doorgaan met een andere thread terwijl bv. de HD bezig is; zonder MT zou het hele programma moeten wachten totdat HD of network I/O klaar is.
[..]
"Onafhanklijk" in CPU-tijd. Ze gebruiken wel hetzelfde geheugen en dergelijke.
[..]
Ik dacht dat dat inmiddels ook niet meer waar was, dat (Win200+/ME) Explorer daarvoor een nieuw proces aanmaakte. Als een thread crasht gaat het hele proces naar de kloten; een apart proces is daarentegen veilig. Maar IHA is een aparte UI thread wel handig - threads kunnen veel makkelijker data uitwisselen (want gedeeld geheugen).
Pagina: 1