0 added
0 removed
Original
2026-01-01
Modified
2026-03-10
1
<p>Теги: kotlin, scope builder</p>
1
<p>Теги: kotlin, scope builder</p>
2
<p>В дополнение к<em>CoroutineScope</em>, которая предоставляется различными билдерами, вы можете, используя<em>coroutineScope</em>, объявить собственную область видимости. Этот билдер создает область видимости и не завершается до тех пор, пока не завершатся все дочерние сопрограммы, которые запущены.</p>
2
<p>В дополнение к<em>CoroutineScope</em>, которая предоставляется различными билдерами, вы можете, используя<em>coroutineScope</em>, объявить собственную область видимости. Этот билдер создает область видимости и не завершается до тех пор, пока не завершатся все дочерние сопрограммы, которые запущены.</p>
3
<p>При этом<em>coroutineScope</em>и<em>runBlocking</em>могут выглядеть одинаково, так как они: 1) ожидают завершения всех операций внутри своего блока; 2) ожидают завершения всех дочерних сопрограмм, которые запущены.</p>
3
<p>При этом<em>coroutineScope</em>и<em>runBlocking</em>могут выглядеть одинаково, так как они: 1) ожидают завершения всех операций внутри своего блока; 2) ожидают завершения всех дочерних сопрограмм, которые запущены.</p>
4
<p>Главное отличие - метод<em>runBlocking</em>блокирует текущий поток, тогда как как<em>coroutineScope</em>лишь просто приостанавливает работу, освобождая основной поток для иных целей. Благодаря этой разнице,<em>runBlocking</em>считается обычной функцией, тогда как<em>coroutineScope</em>- это функция приостановки.</p>
4
<p>Главное отличие - метод<em>runBlocking</em>блокирует текущий поток, тогда как как<em>coroutineScope</em>лишь просто приостанавливает работу, освобождая основной поток для иных целей. Благодаря этой разнице,<em>runBlocking</em>считается обычной функцией, тогда как<em>coroutineScope</em>- это функция приостановки.</p>
5
<p>Пример ниже демонстрирует вышесказанное:</p>
5
<p>Пример ниже демонстрирует вышесказанное:</p>
6
<p>Также следует учесть, что непосредственно после сообщения "Task from coroutine scope" (когда ожидается выполнение вложенного<em>launch</em>) происходит выполнение и выдача "Task from runBlocking", и это при том, что выполнение<em>coroutineScope</em>еще не завершилось.</p>
6
<p>Также следует учесть, что непосредственно после сообщения "Task from coroutine scope" (когда ожидается выполнение вложенного<em>launch</em>) происходит выполнение и выдача "Task from runBlocking", и это при том, что выполнение<em>coroutineScope</em>еще не завершилось.</p>
7
<p><em>По материалам https://kotlinlang.ru/</em></p>
7
<p><em>По материалам https://kotlinlang.ru/</em></p>
8
8