Aufgabe 7.4 Exchanger

Disclaimer: Dieser Thread wurde aus dem alten Forum importiert. Daher werden eventuell nicht alle Formatierungen richtig angezeigt. Der ursprüngliche Thread beginnt im zweiten Post dieses Threads.

Aufgabe 7.4 Exchanger
Hallo,

ich hänge jetzt seit ein paar Stunden bei der Aufgabe 7.4c fest.
Das hier habe ich als evtl. Möglichkeit gefunden:

Aber wie genau soll man das jetzt implementieren? Das macht für mich alles keinen Sinn…

Danke :slight_smile:


Das ist eigentlich sehr einfach. Du hast eine Liste mit anzahlThreads-1 Exchangern und gibst jedem thread zwei Exchanger mit (natürlich haben zwei Threads die auf benachbarten Spalten arbeiten denselben exchanger). Zuerst führst du auf den einen Exchanger exchange aus und dann berechnest du wie es in den Folien markiert ist deine zwei (drei, etc) Werte und machst exchange auf den zweiten Exchanger. Was du übergibst ist bei dieser Aufgabe egal, z.B. geht new Object. Nun musst du nur noch die Threads am Rand beachten, das schaffst du selbst :wink:


Danke für die Antwort, aber ich bin leider größtenteils immer noch verwirrt.

Wie genau soll dieser Ansatz denn schneller sein als eine sequentielle Berechnung? Im Endeffekt rechne ich doch alle Runden hintereinander aus, wenn ich das richtig verstanden habe.
Ich verstehe auch nicht, was das mit den Exchangern soll und was ich da bitte austauschen soll? Klar, das eigentliche Objekt ist egal, aber was BRINGT das den Threads? Und wo werden denn die Ergebnisse gespeichert, damit ich am Ende eine Matrix zum Auslesen habe?


Es ist schneller (Fließbandverarbeitung!). Man wartet nur auf die ersten Berechnungen. Wenn der erste Thread fertig ist mit den ersten Berechnungen kann der zweite starten. Dann ist es natürlich schneller als das Sequentielle.
Genauer:
T1
T1 T2
T1 T2 T3 ← parallel!
T1 T2 T3
T2 T3
T3

Zu den Exchangern: der thread der Exchange aufruft wartet auf nen zweiten Thread, was garantiert, dass manche Sachen vorher berechnet werden. Eigentlich gut in den Folien erklärt.


Ich bedanke mich :slight_smile:

Der Stresstest haut gut rein, aber alles wird richtig berechnet.


@elias007: Sorry, falls das eine blöde Frage ist, aber WO genau wird das in den Folien erklärt? Ich habe sämtliche Folien der Übung und der Vorlesung nach den Exchangern durchforstet und nichts gefunden, habe mir dann mit Youtubevideos etc geholfen. Ich konnte leider nicht in die Tafelübung dazu gehen, da sich das letzte Woche mit einem anderen Termin überschnitten hat.


Zu Exchangern steht absolut nichts in den Folien, das habe ich mir selbst zusammen gegoogelt.


Ah okay, dann hab ich ja doch nichts überlesen, ich war nur verwundert, weil du oben geschrieben hattest, dass das in den Folien gut erklärt wurde, aber vermutlich meinst du das mit den farbigen Threads/Runden?


Ja genau. Auf einer der Folien kurz vor dem Ende wurde in Runden erklärt, wie man das abhandeln soll. Meine Implementierung dauert jetzt auch für alle Tests weniger als 2 Sekunden.