LCS Fließband

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.

LCS Fließband
Hi,

kann mir jemand auf die Sprünge helfen wie ich die BlockingQueue in der Matrix zu verwenden habe? Hatte gedacht ich mache einfach ne ArrayList mit den einzelnen BlockingQueues als “Reihen” meiner Matrix. Da nun die spaltenweise arbeitenden Threads auf die gleichen Queues zugreifen blockieren sie einfach, wenn ein Ergebnis noch nicht fertig ist. Man stößt aber an die Grenze, wenn man jetzt z.B. auf ein Element “links oben” in der Matrix zugreifen will, da es keine BlockingQueue gibt, welche Elemente an einem bestimmten Index zurückliefert.

Danke im vorraus!


Man braucht nur BlockingQueues zwischen 2 Spalten. D.h. die ganze linke spalte braucht aus keiner Queue lesen und die ganz rechte Spalte muss in keine Queue schreiben.
Du musst aufpassen dass alle Zeilen außer die erste und die letzte 2 mal verwendet werden: Während Schritt n ist links = links, aber in Schritt n+1 ist links = links_oben, d.h. der Schreiber muss solche Werte zweimal hintereinander reintun, damit der Leser sie auch zweimal entnehmen kann.
So ists bei zumindest, sonst ist alles straightforward


alles klar, danke!