Apple Dispatch Queue vs Threads

1

Ho sentito parlare molto delle famose code di spedizione di Apple e del GCD ma oggi è stata la prima volta che ho capito esattamente cosa sta succedendo, quindi ho iniziato a leggere Guida alla programmazione della concorrenza e questo paragrafo ha attirato la mia attenzione.

If you have two tasks that access the same shared resource but run on different threads, either thread could modify the resource first and you would need to use a lock to ensure that both tasks did not modify that resource at the same time. With dispatch queues, you could add both tasks to a serial dispatch queue to ensure that only one task modified the resource at any given time. This type of queue-based synchronization is more efficient than locks because locks always require an expensive kernel trap in both the contested and uncontested cases, whereas a dispatch queue works primarily in your application’s process space and only calls down to the kernel when absolutely necessary.

Quello che capisco è che suggeriscono di eseguire due compiti in serie per evitare l'uso di blocchi, che può essere fatto allo stesso modo nei thread. Ad esempio in Java puoi inserire due funzioni nella funzione eseguibile del thread e il thread le eseguirà in serie e in quel caso non avrai bisogno di blocchi.

Ora la mia domanda è che mi manca qualcosa?

    
posta Mr.Me 12.08.2013 - 09:34
fonte

2 risposte

1

No, non penso che ti manchi qualcosa. Se non si eseguono operazioni in parallelo, non è necessario (necessariamente) bloccare. La distinzione, nella misura in cui ce n'è una, è che l'interfaccia GCD lo rende piuttosto facile da fare.

    
risposta data 12.08.2013 - 09:49
fonte
1

La differenza è che con una coda di invio seriale non è possibile eseguire solo un'attività dopo l'altra. Puoi fare molto di più. Qualsiasi numero di fonti può inviare qualsiasi numero di attività a quella coda seriale in qualsiasi momento e verranno eseguite una dopo l'altra.

    
risposta data 13.01.2018 - 19:16
fonte

Leggi altre domande sui tag