Download præsentationen
Præsentation er lastning. Vent venligst
Offentliggjort afMichael Østergaard Redigeret for ca. et år siden
1
Samtidighed
2
Disposition Formål med tråde Eksempel på fordel ved tråde Thread-pooling Livscyklus Problemstillinger Algoritmer ◦Dekkers ◦Peterson Opsumering
3
Formål Håndtere flere forespørgsler parallelt ◦En server med mange klienter Udnytte ventetid ◦F.eks. ved IO (Netværk, Harddisk) Udnytte flere processorer
4
Eksempel 1 server, mange klienter ◦Uden tråde Få request ◦Med tråde Flere request ◦Med tråde og cache Mange request
5
Thread-pooling Fast antal “worker threads” ◦Forespørgsler fordeles ud på worker-trådene ◦Når der er flere tråd-forspørgsler end worker threads bliver de sat I kø Begrænser overhead ved tråde ◦Minimerer det samlede overhead ◦Balance-gang
6
Livscykluser for tråde
7
Problemstillinger Inteferens Deadlock Livelock Starvation ◦Tråd får ikke resourcer den har brug for
8
Algoritmer til låsning Kritisk region Flag Turn/Last
9
Dekkers 1public void wantToEnterCS(int i) { 2desiresCS[i].value = true; 3while (desiresCS[other(i)].value) { 4if (turn != i) { 5desiresCS[i].value = false; 6while (turn != i) Thread.yield(); 7desiresCS[i].value = true; 8} 9} 10} 11public void finishedInCS(int i) { 12desiresCS[i].value = false; 13turn = other(i); 14}
10
Petersons 1public void wantToEnterCS(int i) { 2desiresCS[i].value = true; 3last = i; // records who last tried to enter 4while (desiresCS[other(i)].value && last == i) 5Thread.yield(); 6} 7public void finishedInCS(int i) { 8desiresCS[i].value = false; 9}
11
Opsumering Tråde for at forbedre performance ◦Ved ventetid ◦Ved flere processorer Komplicerer programmer ◦Inteferens ◦Låse og dertilhørende problemer
Lignende præsentationer
© 2024 SlidePlayer.dk Inc.
All rights reserved.