Parallele Programmierung (3IB)
Exchanger<T>BlockingQueue<T>
Exchanger-KlasseExchanger: Synchroner AustauschBlockingQueueQueue-Interfaces1BlockingQueue<E>| mit Exception | nicht blockierend | blockierend | Timeout | |
|---|---|---|---|---|
| einfügen | add(e) |
offer(e) |
put(e) |
offer(e, time, unit) |
| auslesen | remove() |
poll() |
take() |
poll(time, unit) |
| prüfen | element() |
peek() |
nicht definiert | nicht definiert |
Hettel und Tran (2016, 145 (modifiziert))
offer()/poll())put()/take())Hettel und Tran (2016, 146)


sequentielle Verarbeitung:


Parallelisierung:


Skalierung:


Optimierung:

Go-Syntax nicht prüfungsrelevant
c <- aa (oder anderem Ausdruck) als Nachricht über Kanal ca <- cc empfangen und Variable a zuweisen (man kann auch (<- c) als Ausdruck verwenden)go fun(...)fun(...)
for-Schleife
default: falls keine Nachricht an den anderen Kanälen anliegtquit für Elemente vom Typ bool
quit für Elemente vom Typ bool mit makemake (chan T, kapa) erzeugt Kanal für Typ T mit Kapazität kapa (int)
true in quit schreibenkapa des Kanals ist hier 0)
quit lesen, blockiert bis Wert verfügbar
A; (B | C); Dpp.10.01.Rendezvouspp.10.02-Logger