на корутинах что-то типо while(run){ } ? который будет периодиски там чего-то делать. Или тут правильнее всетаки отдельным тредом?
Нормально. Главное -- вызвать по дороге yield либо другие библиотечные функции, или руками проверять isActive и завершаться. Ну и да, этого не стоит делать на потоке с ивент-лупом приложения, если в цикле выполняется что-то блокирующее -- на такие случаи есть withContext(Dispatchers.Default) { ... }.
Запускать руками треды не надо вообще -- есть стандартные диспатчеры, плюс можно сделать диспатчер из экзекьютора, если обязательно нужен собственный пул.
Обсуждают сегодня