F8 (Synkronisering) Flashcards

1
Q

Vad är callback?

A

En metod som skickas som parameter till en annan metod, den andra metoden ska köra callback-metoden när en händelse inträffar

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q

Vad är skillnaden synkron och asynkron callback?

A

synkront callback - kan göra en sak i taget

asynkront callback - kan göra flera saker samtidigt

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q

Vad innebär synchronous?

A

att en uppgift ska bli färdig innan nästa task kan börja, programmet eller tråden fortsätter inte tills ett svar kommit från händelsen

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

Vad innebär asynchronous?

A

varje task görs av en ny tråd, tråden ska anropa en callback-metod (funkar som listeners)

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
5
Q

Varför är synkronisering viktigt?

A

För att om flera trådar använder samma resurs (t ex läser data och ändrar den samtidigt pga olika trådar/parallella processer) kan det ge oväntade fel eller krascha programmet

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q

Vad säkerställer synkronisering?

A

att flera trådar kan använda samma kod utan felaktiga resultat genom att

synkronisera sekvenser av tråd

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
7
Q

Vad kan man säga att koden blir vid synkronisering?

A

trådsäker kod

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
8
Q

Vad innebär det att alla objekt i java har ett lås?

A

att om en tråd börjar exekvera en synchronized-metod så blir alla synkroniserade miljöer i objektet låsta för andra trådar, de får vänta på tillträde till den “första” tråden är klar

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
9
Q

Vad är en synchronized-sats?

A

ett sätt att synkronisera kodsekvens (block) inuti en metod

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
10
Q

Hur skrivs en synchronized-sats?

A

genom att ange en objektreferens såhär:

public void method() {
    : 
    synchronized( objektreferenss){
         //skyddad kod
     }
    :
}
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
11
Q

Är klasser som implementerar Collection / Map i regel synkroniserade?

A

Nej

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
12
Q

Hur kan man synkronisera klasser som implementerar Collection/Map?

A
  1. låta en instans av klassen vara attribut i en ny klass

2. skriva synkroniserade metoder vilka använder instansen

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
13
Q

Vad är en kö i kod-sammanhang?

A

En datastruktur som är som en lista men

  1. man kan bara lägga till objekt i slutet
  2. ta ut objekt i början
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
14
Q

Vad innebär producer-consumer modellen?

A
  1. Producer-trådar LEVERERAR element och sparar i buffert
  2. Consumer-trådar HÄMTAR (avlägsnar)
  3. Producer och Consumer ska INTE vara i buffert samtidigt
  4. Producer ska INTE lägga till om buffert är full
  5. Consumer ska INTE hämta om buffert är tom
  6. Kan finnas fler av varje typ
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
15
Q

Hur kan man lösa problemet att producer inte ska fylla en buffert och consumer inte hämta från tom buffert?

A

Genom en samling av typ LinkedList

How well did you know this?
1
Not at all
2
3
4
5
Perfectly