Size: a a a

Kotlin Community

2020 May 12

IO

Iaroslav Orlov in Kotlin Community
через это?
источник

AN

Alexander Nozik in Kotlin Community
Vladimir Petrakovich
Dispatchers.Default - подходящий пул для вычислительных задач.
Но если они жирные, можно подкосить отзывчивость приложения, поэтому в таком случае есть смысл создать свой пул и на нём гонять этот код.
Для вычислительных все-таки не стоит. Его много кто использует, и он может заблокаться. Или IO, или, еще лучше, свой
источник

AN

Alexander Nozik in Kotlin Community
Iaroslav Orlov
через это?
да, это превращает экзекутор в диспатчер
источник

VP

Vladimir Petrakovich in Kotlin Community
Alexander Nozik
Для вычислительных все-таки не стоит. Его много кто использует, и он может заблокаться. Или IO, или, еще лучше, свой
Ну IO точно мимо, но да, надёжнее свой. А там ещё не завезли фичу "свой диспатчер, который шарит потоки с дефолтным"?
источник

RI

Ruslan Ibragimov in Kotlin Community
Alexander Nozik
Для вычислительных все-таки не стоит. Его много кто использует, и он может заблокаться. Или IO, или, еще лучше, свой
IO может использоваться для IO и может на IO заблокаться, не используйте IO
источник

AN

Alexander Nozik in Kotlin Community
Ruslan Ibragimov
IO может использоваться для IO и может на IO заблокаться, не используйте IO
Он добавляет потоки по мере надобности. Там разве есть лимит?
источник

RI

Ruslan Ibragimov in Kotlin Community
Конечно
источник

VP

Vladimir Petrakovich in Kotlin Community
Alexander Nozik
Он добавляет потоки по мере надобности. Там разве есть лимит?
64 по дефолту, насколько я помню
источник

AN

Alexander Nozik in Kotlin Community
угу, вижу. Вроде когда-то был нелимитированный. Но свой точно лучше всего.
источник

RI

Ruslan Ibragimov in Kotlin Community
Какой смысл плодить потоки? Если Default уже забит computation work, то новые потоки не разгрузят его, а наоборот
источник

BP

Bogdan Panchenko in Kotlin Community
Vladimir Petrakovich
Ну IO точно мимо, но да, надёжнее свой. А там ещё не завезли фичу "свой диспатчер, который шарит потоки с дефолтным"?
Почему мимо ?
источник

BP

Bogdan Panchenko in Kotlin Community
Vladimir Petrakovich
64 по дефолту, насколько я помню
Они лениво создаются
источник

BP

Bogdan Panchenko in Kotlin Community
Ruslan Ibragimov
Какой смысл плодить потоки? Если Default уже забит computation work, то новые потоки не разгрузят его, а наоборот
+
источник

BP

Bogdan Panchenko in Kotlin Community
Только если код где то блочит поток то есть смысл
источник

RI

Ruslan Ibragimov in Kotlin Community
Но если блочит поток, то это уже не чисто computational work, и блокировку которая чего-то ожидает нужно выносить на IO пул
источник

AN

Alexander Nozik in Kotlin Community
Ruslan Ibragimov
Какой смысл плодить потоки? Если Default уже забит computation work, то новые потоки не разгрузят его, а наоборот
На Default может висеть что-то еще важное в другой части кода. Если он переблокается, то может быть не хорошо
источник

IO

Iaroslav Orlov in Kotlin Community
я не говорил, что у меня что-то блокируется
источник

BP

Bogdan Panchenko in Kotlin Community
Alexander Nozik
Он добавляет потоки по мере надобности. Там разве есть лимит?
Ну забить этот лимит не так уж и просто, да и не понятно даст ли столько потоков прирост, а вот Первомаем минусануть это точно, ведь потоки переключаются
источник

AN

Alexander Nozik in Kotlin Community
Ruslan Ibragimov
Но если блочит поток, то это уже не чисто computational work, и блокировку которая чего-то ожидает нужно выносить на IO пул
Большой computational work блочит поток не хуже IO
источник

RI

Ruslan Ibragimov in Kotlin Community
Alexander Nozik
На Default может висеть что-то еще важное в другой части кода. Если он переблокается, то может быть не хорошо
Ну threadpool starvation не решается добавлением потоков. Ну часть проблемы решается конечно, но в целом пропускная способность упадет
источник