Monday, 30 January 2012

Executors

In Java 5/6 il nuovo modo standard per creare e gestire il ciclo di vita dei Thread e' tramite la classe Executor: invece di crearli esplicitamente con new Thread() li crea e li gestisce la classe Executor.
Esistono vari tipi:
  • CachedThreadPool: crea un pool di thread allocandoli alla bisogna.
  • FixedThreadPool: ne alloca un numero massimo prefissato (si risparmi il tempo di creazione)
  • SingleThreadExecutor: crea un solo thread. Utile nei casi in cui si vuole serializzare i task. In questo caso serializzando i task posso non preoccuparmi di sincronizzare le risorse condivise (es. file). Esso mantiene al suo interno una coda di task che vengono eseguiti nell'ordine di inserimento.
Nei pool quando un thread termina il suo compito viene utilizzato per un altro task (ulteriore risparmio di tempo)

No comments:

Post a Comment

Followers