? Programmi per computer in grado di eseguire più blocchi di codice , allo stesso tempo attraverso il programma di concorrenza . Ciò consente una grande flessibilità , in quanto i programmi possono gestire richieste o dati separatamente dal programma principale senza influenzare l'esecuzione del programma stesso . I programmi fanno attraverso l'uso di fili . La gestione di questi thread di esecuzione comprende la gestione delle loro risorse e di come il programma intende monitorare loro. Una differenza tra il modo in cui un programma mantiene le discussioni è rappresentato dalla differenza tra le discussioni "distaccato " " assemblabili " e . Discussioni
Nella programmazione di computer , programmazione " multithreaded " o " concorrente " si riferisce alla tecnica di creazione di thread di esecuzione separato nello stesso programma . Ogni thread in un programma esegue un codice accanto agli altri thread in quel programma , consentendo a più blocchi di codice da eseguire nello stesso momento . Quando si inizia un programma, c'è sempre un thread , il thread "principale" , da cui altri thread possono deporre le uova per gestire altri blocchi di codice .
Discussioni assemblabili
< p > Con diversi thread in esecuzione contemporaneamente all'interno dello stesso programma , la manutenzione filo diventa cruciale. Un modo per mantenere le discussioni è quello di utilizzare le funzionalità di "join" . Discussioni assemblabili correre insieme agli altri thread di un programma, come è tipico di fili . Tuttavia, il thread principale vedo l'ora di partecipare al thread creato . Il thread principale , invece di eseguire altro codice , può utilizzare la funzione join del filo per permettere un altro thread di terminare il suo compito . Il filo deposto le uova , una volta terminato, restituisce un codice di uscita di segnalazione di una uscita normale o un errore , e il thread principale riprende l'esecuzione.
Discussioni Staccata
indipendente discussioni funzionano in modo leggermente diverso . Quando un thread è esplicitamente stacca dal suo thread principale , non ha più collegamento a quel filo . Le piste filo e le uscite come qualsiasi altro thread e quindi viene chiuso al termine. Il thread principale non può controllare il thread creato . Il filo generato termina quando finito , il che significa il thread principale non deve aderire in modo esplicito con il filo più avanti nel programma .
Risoluzione di thread in esecuzione
Partecipare e scollegamento filettature consentono due diverse modalità di gestione dei thread . Lasciando un filo come joinable , il programmatore può forzare il programma di unirsi con il filo più avanti in esecuzione . Questo join deve avvenire per liberare le risorse utilizzate dal thread creato , come stack e memoria heap . Un filo indipendente, una volta staccato , eseguito fino al termine , e il sistema recupera automaticamente le risorse utilizzate . Tuttavia, il thread principale non può controllare lo stato di un thread indipendente attraverso una join . Pertanto , il programma principale non sa se un dato vita , filo indipendente completato il suo compito con successo , perché non riceve un codice di uscita del thread.