Qual è la differenza tra una coroutine e una filettatura?
Qual è la differenza tra una coroutine e una filettatura?

Video: Qual è la differenza tra una coroutine e una filettatura?

Video: Qual è la differenza tra una coroutine e una filettatura?
Video: Concorrenza strutturata e coroutine in Java e Kotlin 2024, Maggio
Anonim

uno importante differenza tra i thread e coroutine è questo discussioni sono in genere programmati preventivamente mentre coroutine non sono. Perché discussioni può essere riprogrammato in qualsiasi momento e può essere eseguito contemporaneamente, i programmi che utilizzano discussioni bisogna stare attenti al bloccaggio.

In questo modo, quali sono le coroutine viene eseguito su thread diversi?

Coroutine non avere niente da fare insieme a Discussioni . Coroutine metodi Potere essere eseguiti pezzo per pezzo nel tempo, ma tutti i processi sono ancora eseguiti da un unico main Filo . Se hai più di una CPU logica, molti thread vengono eseguiti su diverso CPU.

Inoltre, cos'è il thread nella programmazione? UN filo in informatica è l'abbreviazione di a filo di esecuzione. Discussioni sono un modo per a programma dividere (denominato "split") se stesso in due o più attività in esecuzione simultaneamente (o pseudo-simultaneamente).

Inoltre, è necessario sapere che cos'è Coroutine è in esecuzione su un nuovo thread?

Cosa succede con a coroutine è così? correre sul principale filo ogni frame e viene eseguito fino a quando non esegue un rendimento, quindi si sospenderà fino a quando la condizione di rendimento non viene soddisfatta. UN filo effettivamente corre contemporaneamente ad altro codice (questo è vero solo quando si hanno più core).

Quando dovrei usare runBlocking?

In realtà tu usa runBlocking chiamare funzioni di sospensione nel codice "bloccante" che altrimenti non sarebbero richiamabili lì o in altre parole: tu utilizzo it per chiamare le funzioni di sospensione al di fuori del contesto coroutine (nel tuo esempio il blocco passato ad async è la funzione di sospensione).

Consigliato: