Threads - Quando usare la barriera?

0

Uso della sintassi python,

threading.Barrier(NUM_THREADS) stabilisce un punto di controllo e tutti i blocchi di thread partecipanti fino a quando tutte le "parti" partecipanti hanno raggiunto quel punto. Permette ai thread di avviarsi separatamente e quindi di sospendere finché non sono tutti pronti a procedere.

Qualcuno può spiegare, uno scenario in tempo reale (multi-thread), sull'uso della barriera?

    
posta overexchange 22.07.2017 - 19:54
fonte

2 risposte

2

Le barriere vengono utilizzate per fare in modo che più thread all'interno dello stesso programma facciano qualcosa in modo sincronizzato.

L'analogo del mondo reale sarebbe il avvio del cancello a una corsa di cavalli . Dieci cavalli in una gara non arriveranno al cancello nello stesso momento, ma è solo quando tutti e dieci sono entrati nel cancello e sono pronti a correre il cancello si apre e ogni cavallo inizia la sua corsa. (Le porte di partenza sono anche chiamate barriere di partenza perché erano barriere piuttosto che porte, il che potrebbe essere il luogo in cui il costrutto di threading ha preso il suo nome.)

La barriera del threading fa la stessa cosa. In un sistema in cui ogni thread ha una funzione e tutti devono essere pronti prima che qualsiasi avvio funzioni, il modo per far rispettare ciò è avere i thread inizializzati e quindi incontrarsi a una barriera. Potresti vedere questo nel sistema che fa funzionare il motore nella tua auto, dove il filo che controlla l'accensione non vorrebbe funzionare fino a quando non si può essere certi che i fili che gestiscono i sensori di posizione della valvola a farfalla e dell'acceleratore siano pronti a fornire dati utili.

    
risposta data 23.07.2017 - 14:56
fonte
2

Un utilizzo di esempio è qualcosa di simile a un pool di lavoro in cui desideri che tutti i tuoi dipendenti siano pronti per la segnalazione prima di inviarli al lavoro. O qualcosa come il sottosistema di un gioco che si carica in parallelo. Oppure i passaggi della mappa nella mappa: riduci ...

È solo uno strumento.

    
risposta data 23.07.2017 - 04:10
fonte