2013-10-02 30 views
8
@ThreadSafe 
public class A 
{ 
} 

Fa questa annotazione effettivamente fare il filo di classe sicuro o è solo per la leggibilità?annotazione chiamato ThreadSafe

+3

** Quale ** tale classe stai usando? Non c'è una classe con quel nome nello stesso JDK, quindi dovrai darci il nome completo della classe. E: è probabile che * not * non renda effettivamente thread-safe in quanto le annotazioni stesse non possono modificare il comportamento o la classe a cui sono applicate (a meno che tu * non * usi qualche bytecode weaving, classloader magic o proxy). –

+3

Sarebbe bello se la sicurezza dei thread fosse così facile, purtroppo non lo è! – assylias

+0

L'annotazione è stata importata da un pacchetto. Quel pacchetto ha documentazione. Cosa dice questa documentazione? – Raedwald

risposta

16

Vedi @ThreadSafe Annotation:

posto questa annotazione sui metodi che possono tranquillamente essere chiamato da più di un thread contemporaneamente. L'implementatore del metodo deve garantire la sicurezza del thread utilizzando una varietà di possibili tecniche compresi dati immutabili, dati condivisi sincronizzati o non utilizzare alcun dato condiviso .

Non rende la classe Filo sicuro, il programmatore esegue Filo sicuro e aggiunge l'annotazione.

Si potrebbe desiderare di vedere anche il link utile this.

+2

Mi dispiace, ma stai indovinando. I due link che hai postato si riferiscono a annotazioni completamente diverse di '@ ThreadSafe' e non sappiamo se l'OP ne usa qualcuna. (Sidenote: usare qualcosa di più descrittivo come "questo" in quanto il testo del link sarebbe fortemente incoraggiato). –

+0

@JoachimSauer Grazie per il vostro consiglio. Prenderò in considerazione il tuo commento per migliorare le mie risposte in futuro. Non so a quale annotazione si riferisca, è per questo che ho suggerito l'altro link. – Maroun

+0

Il link che hai fornito è stato molto utile. Grazie. – vitrums