Futures Flashcards

1
Q

Unterschied Prozess zu Thread?

A

Prozess

  • Teilt Speicherbereich nicht
  • Unabhängiger Task

Thread

  • Teilt Speicherbereich
  • Arbeitet an gleichem Task wie andere Threads
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q

Wie läuft Nebenläufigkeit bei Single CPU ab?

A

Scheduler

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

Wie läuft Nebenläufigkeit bei Multicore Systemen ab?

A

Jede CPU hat eigenen Scheduler und eigene Threads

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

Zustände von einem Thread?

A
  • Neu
  • Bereit
  • Laufend
  • Blockiert
  • Beendet
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
5
Q

Was bedeutet synchronized bei einer Java Funktion?

A

Blockiert gesamte Methode für alle Threads ausser den Thread der sie zuerst ausführt.

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

Wo kann man synchronized noch nutzen?

A

Im Scope der Funktion

public void addName(String name) {
    synchronized(this) {
        lastName = name;
        nameCount++;
    }
    nameList.add(name);
}
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
7
Q

Was ist eine Race Condition?

A

Wenn das Ergebnis einer Kalkulation durch Zugriff mehrerer Threads an einem zeitkritischen Zeitpunkt verschiedene Ergebnisse liefert.

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

Was ist ein Deadlock?

A

Wenn die Anforderung und Freigabe von Locks nicht in der selben Reihenfolge stattfindet.

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

Was bedeutet Starvation (verhungern) von Threads?

A

Durch Priorisierung von Threads kommen manche davon nie an die Reihe

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

Wann ist Synchronisation notwendig?

A

Wenn ein Objekt veränderbar ist und geteilt wird (shared - mutable)

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

Nenne Monads für synchrone Tasks

A
  • Try (Einzelne)
  • Option (Einzelne)
  • Iterable (Mehrere)
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
12
Q

Nenne Monads für asynchrone Tasks

A
  • Future (Einzelne)
  • Observable (Mehrere)
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
13
Q

Was ist ein Future?

A
  • Objekt das ein Ergebnis für die Zukunft bereit hält
  • Future ist ein Thread im Threadpool
  • Kann Ergebnis als auch Try enthalten
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
14
Q

Welchen Status kann ein Future haben?

A
  • Pending (Wartend)
  • Success (Erfolgreich)
  • Failure (Fehlgeschlagen)
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
15
Q

Wie lautet die aktuelle callback Funktion eines Future?

A
onComplete {
    case Success(result) => result
    case Failure(error) => error
}
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
16
Q

Welche Möglichkeiten der Fehlerbehandlung gibt es bei Futures?

A
  • fallbackTo { whatever() }
  • recoverWith { case _ => whatever() }
17
Q

Unterschied Concurrency und Parallelism?

A
  • Concurrency: Effiziente Nutzung limitierter Ressourcen
  • Paralleliism: Effiziente Nutzung vieler Ressourcen
18
Q

Wird Future für Concurrency oder Parallelism verwendet?

A

Concurrency

19
Q

Wird Akka für Concurrency oder Parallelism verwendet?

A

Parallelism