F6 (Timer, Trådar) Flashcards
Vad är poängen med multithreading?
- Utföra olika aktiviteter parallellt
- Kunna nyttja alla resurser
Ge exempel på fall om lämpar sig för att utföras i separata trådar
- Animering/andra processorkrävande processer
- Aktiviteter som går långsamt
- Nätverkskommunikation
Vad möjligör Timer-klasserna?
Ett enkelt sätt att planera en aktivitet i bakgrunden
Vad är busy-waiting?
Attt man gör beräkningar man inte behöver för att bli av med tid, dvs istället för att pausa programmer och frågar hela tiden om det är dags att exekvera (något) och kollar hela tiden (loopar), istället för att vara lugn tills det är dags
resurskrävande i stora program
Vad är viktigt med Timer-klasser?
att koden som ska exekveras gör det snabbt, så att timern inte blockerar t ex operativsystemet om det är mycket kod som “väntar” på att bli exekverad
Väntar timers i separata trådar?
Nej alla timers “väntar” i samma tråd
Vilka två sätt kan skapa trådar på?
Genom att låta en klass ärva/extend “Thread” eller implementera “Runnable”
Hur startar man en tråd med Thread?
Thread t = new Thread( )
t.start( );
Vad gör start( )?
att koden i run( ) (i klassen som ärver Thread) exekveras
Hur startar med en tråd med Runnable?
På samma sätt som med Thread, dvs start( )
Vad är fördelen med att interface Runnable över klassen Thread?
Singel inheritance-regeln, att en klass man kan ärva en klass. Använder man interfacet så låser man inte den “platsen”, utan en klass kan ärva en annan klass OCH implementera interfacet
Vilka fördelar kan finnas med att definiera inre “trådklasser”?
Samma klass kan ha flera trådar (flera inre klasser) men olika uppgifter, detta är också en lösning för problemet med single inheritance
Kan en tråd återanvändas?
Nej när en tråd är klar måste man skapa ett nytt objekt