Condividi tramite


Thread e processi

Aggiornamento: novembre 2007

I termini thread e processi costituiscono concetti correlati in ambito informatico. Entrambi rappresentano infatti sequenze di istruzioni che devono essere eseguite in un ordine specifico. Le istruzioni incluse in thread o processi distinti possono tuttavia essere eseguite in parallelo.

I processi sono disponibili nel sistema operativo e corrispondono a ciò che gli utenti visualizzano sotto forma di programmi o applicazioni. I thread sono invece disponibili nei processi. Per questo motivo vengono talvolta definiti processi leggeri. Ciascun processo è costituito da uno o più thread.

La presenza di più processi consente a un computer di eseguire più operazioni contemporaneamente. La presenza di più thread consente invece a un processo di suddividere le operazioni da eseguire in parallelo. In un computer con più processori, i processi o i thread possono essere eseguiti in processori diversi consentendo l'effettiva elaborazione in parallelo.

Una perfetta elaborazione in parallelo non è sempre possibile. È talvolta necessario sincronizzare i thread. È inoltre possibile che un thread debba attendere un risultato di un altro thread o disporre di accesso esclusivo a una risorsa utilizzata da un altro thread. I problemi di sincronizzazione costituiscono una causa comune di errore in applicazioni con multithreading. È talvolta possibile che i thread rimangano in attesa di una risorsa che non diviene mai disponibile, causando una condizione denominata deadlock.

Nel debugger di Visual Studio sono disponibili strumenti efficaci e di facile utilizzo per il debug di thread e processi.

Strumenti per il debug di thread e processi in Visual Studio

I principali strumenti per la gestione dei processi in Visual Studio sono la finestra di dialogo Connetti a processo, la finestra Processi e la barra degli strumenti Posizione di debug. I principali strumenti per il debug dei thread sono la finestra Thread, gli indicatori dei thread nelle finestre di origine e la barra degli strumenti Posizione di debug.

Nella tabella riportata di seguito sono illustrate le informazioni disponibili e le operazioni che è possibile eseguire con ciascuno strumento:

Interfaccia utente

Informazioni disponibili

Operazioni eseguibili

Finestra di dialogo Connetti a processo

Processi disponibili cui è possibile eseguire la connessione:

  • Nome di processo (estensione exe)

  • Numero di ID di processo

  • Titolo della barra dei menu

  • Tipo (gestito, x86, x64, IA64)

  • Nome utente (nome di account)

  • Numero di sessione

Selezione di un processo cui eseguire la connessione

Selezione di un computer remoto

Modifica del tipo di trasporto per la connessione a computer remoti

Finestra Processi

Processi collegati:

  • Nome di processo

  • Numero di ID di processo

  • Percorso dell'eseguibile (file con estensione exe) di processo

  • Titolo della barra dei menu

  • Stato (Interrompi. In esecuzione)

  • Debug (nativo, gestito e così via)

  • Tipo di trasporto (predefinito, nativo senza autenticazione, smart device)

  • Qualificatore di trasporto (computer remoto)

Strumenti:

  • Connetti

  • Disconnetti

  • Termina

Menu di scelta rapida:

  • Connetti

  • Disconnetti

  • Disconnetti al termine del debug

  • Termina

Finestra Thread

Thread nel processo corrente:

  • ID thread

  • Categoria (thread principale, thread dell'interfaccia, gestore delle chiamate a una procedura remota o thread di lavoro)

  • Nome thread

  • Percorso in cui viene creato il thread

  • Priorità

  • Livello di sospensione

Menu di scelta rapida:

  • Passa al thread

  • Blocca un thread in esecuzione

  • Sblocca un thread bloccato

  • Imposta flag del thread per studio aggiuntivo

  • Rimuovi flag del thread

  • Rinomina thread

  • Mostra/Nascondi thread

Altre azioni:

  • Visualizzare lo stack di chiamate per un thread in un suggerimento dati

Finestra di origine

Gli indicatori dei thread all'estrema sinistra indicano thread singoli o più thread

Menu di scelta rapida:

  • Passa al thread

  • Imposta flag del thread per studio aggiuntivo

  • Rimuovi flag del thread

Barra degli strumenti Posizione di debug

  • Processo corrente

  • Thread corrente

  • Stack frame corrente

  • Passare a un altro processo

  • Passare a un altro thread del processo corrente

  • Passare a un altro stack frame del thread corrente

  • Impostare o rimuovere flag del thread corrente

  • Mostrare solo thread con flag

Vedere anche

Attività

Procedura: utilizzare la finestra Processi

Altre risorse

Connessione a processi in esecuzione

Debug di applicazioni multithreading