Sto leggendo i codici java per garantire che sia thread-safe.Come si analizza il codice sorgente Java e si assicura che sia thread safe
Come comprendo, qualsiasi variabile locale all'interno del metodo è thread-safe poiché appartiene all'indirizzo di memoria dello stack. Qualsiasi variabile di classe/istanza non è thread-safe poiché appartiene alla memoria heap è condivisa da altri thread.
Con la regola empirica, posso mettere una parola chiave sincronizzata su ogni metodo che tocca le variabili di classe.
C'è qualche plugin di eclissi o regole che posso analizzare/prevenire problemi di multi-threading?
Sì. FindBugs può eseguire tale analisi. Vedi: http://stackoverflow.com/questions/2423266/thread-safety-framework – noahlz
Bene, un'istanza di oggetto creata da un thread e referenziata solo da quel thread, (ad esempio, il suo riferimento è una var locale), non è intrinsecamente condiviso con altri thread. –
quali sono le altre "regole/punti" generali di cui dovrei prendere nota? – youcanlearnanything