ummairt Skrevet 12. juni 2010 Del Skrevet 12. juni 2010 Hey, Ønsker en liten forklaring angående tråder i java. Jeg driver og leser et flysalg eksempel i java (side 37 - 40) : http://heim.ifi.uio.no/inf1010/v10/lysark/Trader-2010-1.pdf Hvis jeg har forstått det riktig så er det slik at når en selger tråd går til wait så slipper den andre tråden til og utfører alt den skal utføre før den foregående slipper til igjen. I dette eksempelet så er det Stein som først ønsker å selge 2 seter og går til sleep. Imens Michael slipper til og får solgt sine ønskede 4 seter, før det samme repeteres på nytt.. Ser vi videre i foilene så ser vi at en synchronized metode er inført, hvor igjen først Stein går til vent og Micael får solgt sitt. 1. Hvorfor skal får tråden tl michael få kjøre før Stein sin ? Lenke til kommentar
Cemi Skrevet 12. juni 2010 Del Skrevet 12. juni 2010 Jeg antar at du vil ha en boolean som settes true eller false når Michael sin tråd har kjørt ferdig, så Stein sin kan kjøre? Da jeg ikke har lest eksempelet du linker til, så beklager jeg om jeg er helt på jordet men det er slik jeg forstår det ut i fra din forklaring. Lenke til kommentar
nirolo Skrevet 13. juni 2010 Del Skrevet 13. juni 2010 Hvis jeg har forstått det riktig så er det slik at når en selger tråd går til wait så slipper den andre tråden til og utfører alt den skal utføre før den foregående slipper til igjen. På hvilket tidspunkt en tråd avbrytes og andre tråder/prosesser slippes til styres av operativsystemet. Du har som programmerer ingen, eller i beste fall veldig liten, kontroll på hvordan trådene i programmet ditt skeduleres. Du må derfor anta at tråder kan byttes inn/ut når som helst. Ved et kall på sleep(), så vil den aktuelle tråden (med all sansynlighet) bli byttet ut, men dette kan også skje på helt andre tider. Når du leser et program som i eksempelet der, så må du lese det som om de to trådene kan gjøre alt "på likt". I praksis så vil den tråden som sover kortest få utført sin "if ( fly.prøvSalg(ønske))" først og dermed klare å selge. 1. Hvorfor skal får tråden tl michael få kjøre før Stein sin ? Svaret her blir da, "når Michael sover kortere enn Stein". Lenke til kommentar
Anbefalte innlegg
Opprett en konto eller logg inn for å kommentere
Du må være et medlem for å kunne skrive en kommentar
Opprett konto
Det er enkelt å melde seg inn for å starte en ny konto!
Start en kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå