Lettura di alcuni thread (common concurrency problems, volatile keyword, memory model) Sono confuso sui problemi di concorrenza in Java.Se più thread possono accedere a un campo devono essere contrassegnati come volatili?
Ho molti campi a cui si accede da più di un thread. Devo passare attraverso di loro e contrassegnarli tutti come volatili?
Quando si costruisce una classe che non sono a conoscenza di se più thread saranno accedervi, quindi sicuramente non è sicuro di lasciare qualsiasi campo non essere volatile, in modo dalla mia comprensione non c'è pochissimi casi si non lo uso . È corretto?
Per me questo è specifico per le JVM versione 1.5 e successive, ma non mi sento limitato a rispondere alla mia configurazione specifica.
Per questo particolare caso d'uso, vedere AtomicInteger, piuttosto che utilizzare 'sincronizzato '. – erickson
Infatti. Volevo solo dimostrare le insidie di usare ciecamente "sincronizzati" senza capire esattamente cosa fa e cosa non fornisce – bdonlan