Thread Pool API
L'API (Thread Pool Application Programming Interface) usa una progettazione basata su oggetti. Ognuno degli oggetti seguenti è rappresentato da una struttura di dati in modalità utente:
- Un oggetto pool è un set di thread di lavoro che possono essere usati per eseguire il lavoro. Ogni processo può creare più pool isolati con caratteristiche diverse in base alle esigenze. È disponibile anche un pool predefinito per ogni processo.
- Un gruppo di pulizia è associato a un set di oggetti di generazione di callback. Le funzioni esistono per attendere e rilasciare tutti gli oggetti membri di ogni gruppo di pulizia. In questo modo l'applicazione consente di tenere traccia di tutti gli oggetti creati.
- Un oggetto di lavoro viene assegnato a un pool e, facoltativamente, a un gruppo di pulizia. Può essere inserito, causando l'esecuzione del callback da parte di un thread di lavoro dal pool. Un oggetto di lavoro può avere più post in sospeso; ognuno genera un callback. L'operazione post non può avere esito negativo a causa della mancanza di risorse.
- Un oggetto timer controlla la pianificazione dei callback. Ogni volta che un timer scade, il callback viene inviato al pool di lavoro. L'impostazione di un timer non può avere esito negativo a causa della mancanza di risorse.
- Un oggetto wait fa sì che un thread waiter attenda un handle waitable. Dopo che l'attesa è stata soddisfatta o il periodo di timeout scade, il thread del waiter invia il callback degli oggetti wait al pool di lavoro dell'attesa. L'impostazione di un'attesa non può avere esito negativo a causa della mancanza di risorse.
- Un oggetto I/O associa un handle di file alla porta di completamento di I/O per il pool di thread. Al termine di un'operazione di I/O asincrona, un thread di lavoro preleva lo stato dell'operazione e chiama il callback dell'oggetto I/O.
Nella tabella seguente vengono descritte le funzionalità delle API del pool di thread originali e correnti.
Argomenti correlati