Cosa succede ai thread quando si è in modalità riposo e dopo?

-2

Quando un dispositivo Android entra in modalità di sospensione, è noto che la CPU dorme. Ciò significa che, i servizi, i thread sono in pausa e tutto dorme.

È vero?

In caso affermativo, cosa succede dopo che il dispositivo si è risvegliato? I thread continuano da dove sono stati interrotti?

E.x se un thread legge da un database e il dispositivo entra in modalità sleep (in qualche modo). Successivamente il thread continua a leggere i record rimanenti da DB?

    
posta Nick 16.12.2018 - 18:59
fonte

1 risposta

0

Il sistema operativo può interrompere o sospendere un thread in qualsiasi momento. Questo è completamente normale, ad es. per garantire che più thread possano condividere un processore (pianificazione preventiva). Quando un thread è programmato per continuare, il sistema operativo ripristinerà il contesto del thread, in particolare: lo spazio degli indirizzi virtuali della memoria del thread e tutti i registri della CPU. Il thread non può dire che è stato sospeso perché è stato ripristinato lo stato esatto, anche se ovviamente il tempo è passato nel frattempo.

Questo modello di processo è utilizzato da tutti i sistemi della famiglia Unix incl. Linux, e per estensione anche Android. Per ulteriori informazioni sul modello di processo, puoi leggere queste diapositive delle lezioni che ho trovato: link

Prima che un dispositivo entri in uno stato sospeso, il sistema operativo sospende tutti i thread in esecuzione, ma i dettagli dipenderanno da come funziona la sospensione del dispositivo (quali componenti verranno spenti).

    
risposta data 16.12.2018 - 19:17
fonte

Leggi altre domande sui tag