Публикации по теме 'kotlin-coroutines'
Kotlin Coroutines: многопоточность все еще сложна
Kotlin Coroutines сейчас повальное увлечение, так что хорошо напоминать себе старые истины. Параллелизм - это сложно, очень сложно. Сопрограммы позволяют писать асинхронный код последовательным образом, но большинство предостережений, связанных с многопоточностью, по-прежнему актуальны, особенно когда задействовано несколько потоков.
Я ma̶d̶e̶ видел несколько ошибок, которые проистекают из того факта, что сопрограммы могут в конечном итоге оставаться старомодными многопоточными...
Вопросы по теме 'kotlin-coroutines'
Kotlin Android Coroutines - функция приостановки, похоже, не работает в фоновом режиме
Я чувствую, что мне не хватает какой-то важной части моего понимания того, как работает этот код ниже:
private fun retrieveAndStore() {
launch(UI) {
val service = retrofit.create(AWSService::class.java)
val...
3224 просмотров
schedule
12.05.2023
Котлинские сопрограммы `runBlocking`
Я изучаю сопрограммы Kotlin. Я читал, что runBlocking - это способ связать синхронный и асинхронный код. Но каков прирост производительности, если runBlocking останавливает поток пользовательского интерфейса? Например, мне нужно запросить базу...
22555 просмотров
schedule
23.11.2022
Неправильное покрытие кода Jacoco для сопрограммы Kotlin
Я использую Jacoco для покрытия кода модульного тестирования. Отчет, созданный Jacoco, показывает, что несколько веток пропущено в моем коде Kotlin . Я заметил, что код сопрограммы и код после него не покрыты должным образом, согласно Жакоко....
3195 просмотров
schedule
30.06.2023
Сопрограммы: runBlocking vs coroutineScope
Я читал Основы сопрограмм , пытаясь понять и изучить их.
Там есть часть с этим кодом:
fun main() = runBlocking { // this: CoroutineScope
launch {
delay(200L)
println("Task from runBlocking")
}
coroutineScope { //...
15979 просмотров
schedule
28.07.2023
Kotlin Coroutines с узловыми модулями
Я спрашиваю себя, как я могу использовать сопрограммы Kotlin вместе с некоторыми модулями узлов. Я пытаюсь написать сервер node.js в Котлине.
Было бы просто продолжать использовать известные обратные вызовы JavaScripts или, может быть, обещания,...
187 просмотров
schedule
03.09.2022
Когда использовать ключевое слово Kotlin suspend?
fun startAsyncFunc() {
launch {
asyncFunc1()
asyncFunc2()
}
}
fun asyncFunc1() { ... }
suspend fun asyncFunc2() { ... }
Я могу закончить работу без suspend , и это даже облегчает тестирование (его можно протестировать без...
7665 просмотров
schedule
07.04.2022
Приостановка функциональных блоков основного потока
Мне трудно понять сопрограммы. Это очень простая установка. И longComputation , и delay являются функциями приостановки. Первый блокирует основной поток, второй — нет. Почему?
CoroutineScope(Dispatchers.Main).launch {
val result =...
833 просмотров
schedule
03.04.2023
Запуск сопрограмм из приостановленной функции
Если у нас есть функция приостановки, но this не является CoroutineScope , как мы можем запускать другие сопрограммы, чтобы они были связаны с текущей областью действия того, что запускает эту suspending функцию?
806 просмотров
schedule
11.01.2023
Модульные тесты сопрограмм проходят индивидуально, но не выполняются вместе
У меня есть два теста сопрограмм, которые оба проходят при запуске по отдельности, но если я запускаю их вместе, второй всегда терпит неудачу (даже если я переключаю их!). Я получаю следующую ошибку:
Требуется, но не вызывается:...
1510 просмотров
schedule
14.03.2022
Асинхронные задачи Firebase для сопрограмм
Я использовал построитель подпрограмм приостановки, чтобы заставить задачи Firebase перейти от кода, основанного на асинхронном прослушивателе, к коду, основанному на сопрограмме.
Это моя приостановка сопрограммы, с помощью которой я добиваюсь...
1324 просмотров
schedule
27.06.2023
GlobalScope.launch создает новый поток или работает в том же потоке?
У меня вопрос из этого кода.
https://kotlinlang.org/docs/reference/coroutines/basics.html
fun main() {
GlobalScope.launch { // launch new coroutine in background and continue
delay(1000L) // non-blocking delay for 1 second...
2134 просмотров
schedule
10.06.2022
LiveData и Coroutines - свойство должно быть инициализированным или абстрактным
Я пытаюсь использовать LiveData и Coroutines вместе в MVVM, и мне может не хватать чего-то простого.
class WeatherViewModel (
private val weatherRepository: ForecastRepository
) : ViewModel() {
var weather: LiveData<Weather>;...
1342 просмотров
schedule
13.07.2022
kotlin coroutine withTimeout не отменяется при использовании withContext для получения неблокирующего кода
Я использую withContext для преобразования функции в функцию приостановки, которая не блокирует вызывающий поток. Для этого я использовал https://medium.com/@elizarov/blocking-threads-suspending-coroutines-d33e11bf4761 в качестве ссылки.
Теперь...
4936 просмотров
schedule
16.03.2022
Сопрограммы: переопределение диспетчера OKHttp для использования ThreadPoolExecutor AsyncTasks, чтобы Espresso мог успешно утверждать
Я переношу приложение, которое использует Retrofit для работы с сопрограммами. В приложении есть некоторые UAT, которые дают сбой, потому что Espresso не ждет завершения сопрограмм и немедленно утверждает.
CoroutineCallAdapterFactory по...
963 просмотров
schedule
17.11.2022
Как создать адаптер вызова для приостановки функций в Retrofit?
Мне нужно создать адаптер вызовов для модернизации, который может обрабатывать такие сетевые вызовы:
@GET("user")
suspend fun getUser(): MyResponseWrapper<User>
Я хочу, чтобы он работал с Kotlin Coroutines без использования Deferred ....
16864 просмотров
schedule
12.05.2022
Четкое определение диспетчера сопрограмм в котлине
Я пытаюсь перейти с RxJava на сопрограммы для моих текущих проектов. Я просматривал официальный документ и наткнулся на Dispatchers . Согласно официальному документу, диспетчеры определяются как:
Контекст сопрограммы включает диспетчер...
442 просмотров
schedule
19.05.2023
Использование потоков ввода-вывода в Kotlin Coroutines
Мне нужно понимать, что если у меня есть один поток ввода-вывода в системе, я запускаю несколько операций ввода-вывода для нескольких сопрограмм, могут ли эти сопрограммы использовать один и тот же поток в приостановленном режиме (то есть, когда...
324 просмотров
schedule
11.06.2022
Испускать LiveData для обновления пользовательского интерфейса между последующими вызовами метода приостановки
Я пытаюсь обновить пользовательский интерфейс между вызовами метода приостановки, когда получаю от них результаты. Например, вот мой класс ViewModel. Методы a (), b () и c () являются приостановленными.
class MainViewModel : ViewModel() {...
1448 просмотров
schedule
17.04.2022
Обработка ошибки отсутствия подключения к Интернету в модификации 2.6 с помощью сопрограмм kotlin
Я использую модификацию 2.6 с сопрограммами kotlin для вызова API без блокировки потока пользовательского интерфейса, у меня он работает, но приложение вылетает, когда я отключаю подключение к Интернету. Ошибка logcat: E / AndroidRuntime: FATAL...
9469 просмотров
schedule
25.09.2022
Ошибка при использовании классов из kotlinx-coroutine-test
Похоже, что зависимость kotlinx-coroutines-test не работает для меня, так как я не могу получить доступ к элементам зависимости, таким как TestCoroutineDispatcher , setMain() , resetMain() и т. Д. Я следил за этим doc , но не может получить...
1765 просмотров
schedule
08.05.2022