Grazie per l'attenzione.
Ecco lo scenario: la mia attività consiste nel fare più volte una semplice simulazione (un gioco giocato da due IA uno contro l'altro), e continuare a farlo fino a quando l'utente preme un pulsante. I dati ottenuti sono usati per rendere l'IA migliore (ho già codificato questa parte e sembra che funzioni).
Voglio che l'attività mostri informazioni di base come il numero di partite già giocate.
Sono abbastanza nuovo per lo sviluppo di Android e Java. So che devo usare un thread separato per fare le simulazioni ma non so come gestirlo, dato che non ho mai usato thread separati finora. Quello che mi infastidisce è: il nuovo thread ha accesso ai metodi e alle variabili pubbliche della classe con cui è stato avviato? Se é cosi, come ?
Ho già letto la documentazione sui thread sul sito web ufficiale degli sviluppatori Android.
risposte:
0 per risposta № 1Un'istanza di una classe non è legata a nessuna discussionecome il thread principale che lo ha creato. Un Thread creato all'interno di un metodo in una classe avrà accesso ai membri privati di quella classe. Avrà accesso ai membri pubblici in tutti i casi in cui è dato dal suo creatore o può ottenere da un metodo pubblico altrove (ad esempio, una statica o il contesto dell'applicazione).
Quindi con il multithreading devi stare attento comedue thread possono accedere contemporaneamente agli stessi metodi e variabili e non si può mai essere sicuri di quale sarà il primo ad arrivare. Il modo più sicuro è di progettarlo in modo che solo un thread "scriva" sulle variabili e gli altri appena letti.