Ist ein static final char [] thread sicher?

8

Also wenn ich

habe %Vor%

Ist das Gewinde sicher? Damit meine ich, wenn ich mehrere Threads habe, die sich auf die Zeichen in diesem Array beziehen (aber sie nicht ändern), wird irgendetwas schief gehen?

z.B.

%Vor%

Mit anderen Worten: Muss ich char [] in eine Art Java-Sammlung mit Thread-Unterstützung einfügen?

    
praks5432 29.10.2012, 08:01
quelle

1 Antwort

10

Wenn Sie sie nach der Initialisierung nicht ändern, sollte es in Ordnung sein. (Beachten Sie, dass dies davon abhängt, dass es sich um eine static final -Variable handelt - die Art und Weise, wie Klassen initialisiert werden, stellt sicher, dass alle Threads den initialisierten Array-Verweis korrekt sehen.)

Arrays können aus mehreren Threads gelesen werden. Sie könnten sogar aus mehreren Threads schreiben, wenn Sie nichts dagegen haben würden, veraltete Ergebnisse zu sehen - Sie würden die Sammlung nicht "korrumpieren". (Im Gegensatz zu vielen anderen Sammlungen können Sie die Größe eines Arrays trotzdem nicht ändern. Es gibt keinen anderen Status als die Elemente selbst.)

    
Jon Skeet 29.10.2012, 08:02
quelle

Tags und Links