In einer Java-Klasse habe ich eine statische Liste, so dass diese Liste für alle Objekte dieser Klasse freigegeben ist. Die Geschäftslogik in dieser Klasse wird in regelmäßigen Abständen ausgeführt, die von einer Methode ohne Übergabe von Instanzparametern aufgerufen wird um diese run-Methode basierend auf der Liste aufzurufen (Ich werde einige vales in diese Liste basierend auf JMS hinzufügen), diese Liste kann manchmal leer sein und nachdem ich den Lauf beendet habe, lege ich diese Liste leer. Nun ist meine Frage, ob ich synchronisieren muss diese Liste oder nicht?Java statische Liste synchronisieren?
Lassen Sie mich auch wissen, gibt es eine andere Möglichkeit, Wert in einer Objektinstanz (Thread1) an andere Objektinstanz (Thread2) übergeben, außer statische Variable (statische Liste)?
Thx
Ich sehe nicht, warum Sie hier eine statische Liste verwenden. Kannst du etwas Code posten? – lweller
Random comment: Es gibt keinen praktischen Unterschied zwischen der Synchronisation zwischen einer statischen Variablen und einer nicht statischen Variablen (in beiden Fällen ist es das tatsächliche Objekt, das synchronisiert wird/Bedürfnisse passiert) vor Beziehungen, jedoch sind die Klassenvariablen statisch/nicht Ich gehe davon aus, dass das Objekt, auf das die Variable verweist, niemals geändert wird. * Im Allgemeinen * werden viele Aufgaben, die mit statischen Variablen erledigt werden, auf andere Weise besser erledigt. –
@pst: Bitte siehe bearbeiten und lassen Sie mich die anderen Möglichkeiten kennen – JavaUser