Android Multiple Threads per operazioni I / O in sala

1

Ho un piccolo esempio che eseguo su un dispositivo reale con 4 + 4 core.

ExecutorService service  = Executors.newFixedThreadPool(4);

for(int i =0 ; i<1000; i++){

Runnable task = new Runnable() {
        @Override
        public void run() {
            //Insert customers in Room
            app.repocustomers().insertcustomers(em); 10k customers
        }
    };

service.execute(task);
}

Quando lo eseguo con un solo Executors.newFixedThreadPool (1), il tempo di esecuzione è inferiore a quello di 4 e non riesco a capire perché.

A causa dei multicores, ogni thread è su un core differente e pronto quando il database si sblocca. L'attesa fa sì che l'esecuzione complessiva sia più lenta di un thread? Non ci sono spese generali sul passaggio dei thread perché sono su core diversi.

Nota Misuro i tempi con System.millisecs

    
posta Nick 03.09.2018 - 09:27
fonte

0 risposte

Leggi altre domande sui tag