Hallo an alle
Ich habe ein Programm in dem Werte berechnet welche in eine Matrix geschrieben werden.
Nun will ich die Berechnungen für einzelne Zeilen auf unterschiedliche Threads aufteilen.
Dies löse ich im Moment so, dass jeder Thread auf dem gleichen Objekt die gleiche Berechnungsmethode aufruft, nur mit unterschiedlichen Parameter für die jeweilige Zeile.
Diese Methode ist nicht synchronized, es wird nur in einem synchronized Block ein jeweiliger Berechnungswert in die gemeinsam benutzte Matrix geschrieben. Das funktioniert an sich auch ohne Probleme. Ich hab nur allgemein die Fragen:
Kann ich bei einem solchen Vorgehen theoretisch Probleme bekommen? Oder dürfen in Java generell Threads beliebig Methoden aufrufen, insofern globale Variablen in synchronized Blöcken geschützt sind?
Bzw. ist die Variante die Berechnung auf unterschiedlichen Instanzen des Objekts vorzuziehen, weil dann jeder Thread seine "eigene" Methode in einem eigenen Objekt hat?
Ich habe ein Programm in dem Werte berechnet welche in eine Matrix geschrieben werden.
Nun will ich die Berechnungen für einzelne Zeilen auf unterschiedliche Threads aufteilen.
Dies löse ich im Moment so, dass jeder Thread auf dem gleichen Objekt die gleiche Berechnungsmethode aufruft, nur mit unterschiedlichen Parameter für die jeweilige Zeile.
Diese Methode ist nicht synchronized, es wird nur in einem synchronized Block ein jeweiliger Berechnungswert in die gemeinsam benutzte Matrix geschrieben. Das funktioniert an sich auch ohne Probleme. Ich hab nur allgemein die Fragen:
Kann ich bei einem solchen Vorgehen theoretisch Probleme bekommen? Oder dürfen in Java generell Threads beliebig Methoden aufrufen, insofern globale Variablen in synchronized Blöcken geschützt sind?
Bzw. ist die Variante die Berechnung auf unterschiedlichen Instanzen des Objekts vorzuziehen, weil dann jeder Thread seine "eigene" Methode in einem eigenen Objekt hat?