2009-08-21 17 views

risposta

17

Multithreading come un modello di programmazione ed esecuzione molto diffuso che consente l'esistenza di più thread nel contesto di un singolo processo. Questi thread condividono le risorse del processo ma sono in grado di eseguirsi indipendentemente. Il modello di programmazione con thread fornisce agli sviluppatori un'utile astrazione dell'esecuzione simultanea. Tuttavia, forse l'applicazione più interessante della tecnologia è quando viene applicata a un singolo processo per consentire l'esecuzione parallela su un sistema multiprocessore.

Ciò significa che un singolo process può avere molti "funzioni" diverse executingconcurrently, consentendo l'applicazione di utilizzare meglio l'hardware a disposizione (più core/processori). I thread possono comunicare tra di loro (hanno shared memory), ma è unper ogni thread behave well con others quando si accede a oggetti/memoria condivisi.

Il threading consente a un'applicazione di rimanere reattiva, senza utilizzare un ciclo di tutte le applicazioni catch, quando si eseguono operazioni lunghe.

Ad esempio, un programma copy non threadato non consente di eseguire alcuna operazione fino al completamento della copia.

Il threading aiuta con problemi complessi, lunghi, indipendenti, ma porta con sé a lot more complexity, che lo rende difficile anche per gli sviluppatori esperti.

1

È un'applicazione che utilizza più di uno thread internamente per raggiungere l'obiettivo.

Esistono molti esempi, poiché la maggior parte delle applicazioni che devono interagire con un utente hanno un thread dell'interfaccia utente e un insieme di thread di lavoro. Questo viene fatto per consentire all'interfaccia utente di rimanere reattiva mentre l'applicazione è impegnata a svolgere alcune attività.

+4

Process! = Thread – ripper234

1

Un'applicazione multi-thread sfrutta l'esecuzione di più attività contemporaneamente per velocizzare le operazioni. Il multithreading può anche trarre vantaggio da più macchine CPU.

2

È un'applicazione in grado di eseguire più operazioni contemporaneamente. Ad esempio, se stai legando un documento in Word, c'è un thread che risponde alla tua tastiera, c'è un thread che sta controllando l'ortografia, ce n'è uno che sta controllando la tua grammatica, potrebbe esserci un altro thread che salva un backup del tuo documento nel caso il programma si blocca.

0

È un programma che utilizza più di uno thread. I diversi thread possono accedere alle strutture di memoria condivisa (in genere utilizzando l'appropriato synchronization mechanisms, ad esempio locks). Un esempio potrebbe essere un programma che scarica contemporaneamente alcuni file, ogni download utilizza un thread diverso per accelerare il processo di download (ci sono modi più sofisticati per ottenere ciò, questo è solo un esempio).

Il multi-threading viene spesso utilizzato su attività associate alla CPU, che traggono vantaggio dall'uso di tutti i core in un computer moderno (ad esempio, tentando di rompere una cifra utilizzando più processori).

La differenza tra un thread e un processo è che processi diversi di solito non possono condividere direttamente la memoria e le strutture dati, sebbene esistano vari meccanismi per condividere le informazioni tra processi (di solito sono più costosi della condivisione di informazioni tra thread).

0

ciò che detta

L'attuazione di fili e processi differisce da un sistema operativo all'altro, ma nella maggior parte dei casi, un filo è contenuto all'interno di un processo. Più thread possono esistere all'interno dello stesso processo e condividere risorse come la memoria, mentre diversi processi non condividono queste risorse.

-1

per thread devi conoscere il processo che non è altro che l'istanza del programma Prendi un esempio di pittura in Windows quando lo esegui, crea un'istanza o un processo di programma di disegno. Quando si apre un'immagine multipla su una finestra diversa, si effettua un processo multiplo di quel programma. Allo stesso modo thread è un'unità di processo significa vedere una finestra di disegno ma in background ci sono più thread eg.color, pennello, matita, ecc. Thread è lì per ridurre il carico di lavoro del processore