Was ist der Unterschied zwischen einer Coroutine und einem Thread?
Was ist der Unterschied zwischen einer Coroutine und einem Thread?

Video: Was ist der Unterschied zwischen einer Coroutine und einem Thread?

Video: Was ist der Unterschied zwischen einer Coroutine und einem Thread?
Video: FANG Interview Question | Process vs Thread 2024, November
Anonim

Eine wichtige Unterschied zwischen den Threads und Koroutinen ist dass Fäden sind in der Regel präventiv geplant, während Koroutinen sind nicht. Weil Fäden kann jederzeit neu geplant und gleichzeitig ausgeführt werden, Programme mit Fäden muss auf die Verriegelung achten.

Was sind auf diese Weise Coroutinen, die auf verschiedenen Threads ausgeführt werden?

Koroutinen habe nichts zu tun mit Themen . Coroutine Methoden kann Stück für Stück im Laufe der Zeit ausgeführt werden, aber alle Prozesse werden immer noch von einer einzigen Hauptleitung erledigt Gewinde . Wenn Sie mehr als eine logische CPU haben, viele Threads werden ausgeführt am unterschiedlich CPUs.

Außerdem, was ist Thread in der Programmierung? EIN Gewinde in Informatik ist die Abkürzung für a Gewinde der Ausführung. Themen sind ein weg für a Programm sich in zwei oder mehr gleichzeitig (oder pseudo-gleichzeitig) laufende Aufgaben aufzuteilen (als "Split" bezeichnet).

Zu wissen ist auch, was Coroutine in einem neuen Thread ausführt?

Was passiert mit a Koroutine ist es so Lauf an der hauptsache Gewinde jeden Frame und wird ausgeführt, bis es einen Ertrag liefert - dann wird er ausgesetzt, bis die Ertragsbedingung erfüllt ist. EIN Gewinde effektiv läuft gleichzeitig mit anderem Code (dies gilt nur, wenn Sie mehrere Kerne haben).

Wann sollte ich runBlocking verwenden?

Eigentlich bist du RunBlocking verwenden Suspending-Funktionen in "blockierendem" Code aufrufen, der sonst dort nicht aufrufbar wäre oder mit anderen Worten: Sie verwenden es zum Aufrufen von Suspend-Funktionen außerhalb des Coroutine-Kontexts (in Ihrem Beispiel ist der an async übergebene Block die Suspend-Funktion).

Empfohlen: