Qual è la differenza tra l'esecuzione di due blocchi di codice sullo stesso thread e l'esecuzione su due thread sincroni?

0

Supponiamo di avere due blocchi di codice, A e B. A deve essere eseguito prima di B. Come ho capito, posso fare una di queste due cose: 1) Metti B in un thread separato che deve essere eseguito dopo A's thread, o 2) Metti A e B nello stesso thread, con A precedendo B nell'ordine di esecuzione.

L'opzione n. 1 significa che verrà allocata più memoria per il thread di B, mentre l'opzione n. 2 significa che verrà allocata solo la memoria necessaria per B.

Quello che cerco davvero è una valutazione obiettiva del motivo per cui si potrebbe preferire l'opzione n. 1 rispetto all'opzione n. 2 (e viceversa).

    
posta moonman239 21.06.2016 - 22:24
fonte

1 risposta

1

Il modo in cui la tua domanda è scritta rende l'utilizzo di più thread sembra praticamente inutile. Tuttavia, un paio di esempi in cui potresti fare ciò che sono simili a ciò che descrivi.

TIMEOUTS - Se non vuoi che A impieghi più tempo di un certo periodo di tempo, allora potresti avviare B in esecuzione su un thread separato mentre il thread A è in attesa di una risposta o attende il timeout.

HARDWARE / DESIGN- Spesso quando comunichi con vari dispositivi hardware avrai uno o più thread dedicati alla comunicazione con quel particolare dispositivo. Ciò consente di gestire senza problemi i comandi e lo stato senza che il resto dell'applicazione debba preoccuparsi dei problemi di threading con l'hardware. Per un comando tipico, la chiamata da A farebbe in coda un comando, quando l'hardware è pronto per elaborare il comando successivo rimuove il comando dalla coda ed esegue sul proprio thread B. Nel frattempo A bloccherà fino a quando il comando non sarà terminato . Ci sono anche momenti in cui potrebbe essere opportuno che un modulo software si comporti in questo modo, come un modulo di registrazione.

    
risposta data 22.06.2016 - 23:43
fonte

Leggi altre domande sui tag