Jaka jest różnica między współprogramem a nitką?
Jaka jest różnica między współprogramem a nitką?

Wideo: Jaka jest różnica między współprogramem a nitką?

Wideo: Jaka jest różnica między współprogramem a nitką?
Wideo: FANG Interview Question | Process vs Thread 2024, Listopad
Anonim

Jeden ważny różnica między wątkami oraz współprogramy czy to wątki są zazwyczaj zaplanowane z wyprzedzeniem, podczas gdy współprogramy nie są. Ponieważ wątki może zostać przełożony w dowolnym momencie i może być wykonywany jednocześnie, programy używające wątki musi być ostrożny z blokowaniem.

Czym w ten sposób są współprogramy działa na innym wątku?

Współprogramy nie mieć nic do robić z Wątki . Współprogram metody Móc być wykonywane kawałek po kawałku w czasie, ale wszystkie procesy są nadal wykonywane przez jedną główną Wątek . Jeśli masz więcej niż jeden logiczny procesor, wiele wątków są wykonywane w dniu różne Procesory.

Dodatkowo, czym jest wątek w programowaniu? A wątek w informatyce jest skrótem od a wątek egzekucyjny. Wątki są sposobem na program podzielić (nazywany "splitem") na dwa lub więcej jednocześnie (lub pseudojednocześnie) działających zadań.

Należy również wiedzieć, co to jest Coroutine, czy działa na nowym wątku?

Co się dzieje z współprogram czy to jest? biegać na głównym wątek każdą ramkę i wykonuje, dopóki nie przyniesie wydajności - następnie zawiesi się, dopóki warunek wydajności nie zostanie spełniony. A wątek efektywnie biegnie w tym samym czasie co inny kod (jest to prawdą tylko wtedy, gdy masz wiele rdzeni).

Kiedy powinienem używać runBlocking?

Właściwie ty użyj runBlocking wywoływać funkcje zawieszające w kodzie "blokującym", które inaczej nie byłyby tam wywoływane lub innymi słowy: you posługiwać się do wywoływania funkcji zawieszenia poza kontekstem współprogramu (w twoim przykładzie blok przekazany do asynchronicznego jest funkcją zawieszenia).

Zalecana: