Ich habe eine normale Klasse entwickelt, um von einem einzigen Thread zugegriffen werden, und ich möchte es thread-safe
machen, so viele Threads können eine einzelne Instanz zur gleichen Zeit verwenden. Es gibt einige Methoden und Variablen auf Klassenebene, die ich statisch machen und mit locks
zu thread-safe
machen werde. Auch Methoden, die nur verwenden lokale Variablen sind sicher (jeder Thread hat seinen Stack) standardmäßig.Machen Sie thread-safe eine normale Klasse mit ThreadLocal <T>
Meine Frage es über properties
der alten Klasse oder allgemeiner non-static
Variable. Kann ich einfach ThreadLocal<T>
verwenden und jeder Thread hat seinen eigenen Satz von properties
? Sicherlich werde ich locks
und andere thread-safety
Probleme innerhalb setters
verwenden (ich nehme an, getters
sind sicher).
Und ist ThreadLocal<T>
Leistungskiller?
Ohne zu beschreiben, was diese Klasse tut, und warum es Störungen durch mehrere Threads geben würde, kann Ihnen niemand eine gute Antwort geben. – Anon
Was glauben Sie genau, dass ThreadLocal funktioniert? Weil ich nicht denke, dass es tut, was du denkst, dass es tut. Können Sie erklären, warum Sie der Meinung sind, dass lokaler Thread-Speicher die richtige Lösung ist? –
@Eric: Ich lese es macht eine Variable lokal zu einem Thread. Wir haben also so viele Eigenschaften wie die Anzahl der laufenden Threads. Das Objekt kann also einen Status pro Thread haben. – Xaqron