Voglio sapere se esiste un numero massimo di thread che è possibile eseguire su un dispositivo Android. Dipende dal tipo di dispositivo?Numero massimo di thread Android
risposta
Come commentato da @Xaver Kapeller, è possibile creare il numero di Thread
desiderato ma più thread
non è effettivamente la parte della soluzione.
A core
(CPU) in Processor
gestirà sola Task
(Process
o Thread
) in un dato momento.
quindi in Processor
con 1 core gestirà uno thread
alla volta. quindi tecnicamente, non importa quanti thread hai aperto per questo processor
, servirà un thread in un dato momento. Tutti gli threads
che sono in esecuzione utilizzerebbero il processore in modo sequenziale, utilizzando il tempo quantico del processore che sembra essere solo simultaneo.
Processor
con 2 core gestirà 2 threads
alla volta (esecuzione concomitante di due thread).
Processor
con 4 core
gestirà 4 fili alla volta (esecuzione contemporanea di quattro fili.
Processor
con 8 core gestire 8 threads
alla volta (esecuzione contemporanea di otto fili. Ecc
Il numero massimo di thread che è possibile eseguire su un dispositivo Android dipende dal fatto che il dispositivo abbia un processore a 32 bit o un processore a 64 bit e stack size of Android. Tuttavia, prima di raggiungere il limite massimo effettivo si avranno i vincoli di memoria
Come indicato nell'articolo here è possibile eseguire test per determinare il numero massimo di thread che è possibile creare nella versione di Android.
Tecnicamente non vi è alcun limite, ma a un certo punto avere più thread sarà meno efficiente di avere meno. Se vuoi vedere un'implementazione ottimale di un aspetto 'ThreadPool' sul codice sorgente di' AsyncTask'. –