Size: a a a

Scala Learning & Education: Ask for Review & Noob questions

2021 October 12

RS

Roman Semisotnov in Scala Learning & Education: Ask for Review & Noob questions
https://scastie.scala-lang.org/r0PJsf7rTZyciS3vkD9G3Q

коллеги, подскажите пожалуйста, почему программа выдает именно такой результат? почему последние 3 строки выводятся одновременно? как будто при ожидании завершения таски в блоке await на строке 16, управление потоком не отдается обратно контекст-экзекьютору, чтобы выполнить функцию на строке 32, а поток тупо блочиться, можете обьяснить почему так, пожалуйста!
источник

S

Simon in Scala Learning & Education: Ask for Review & Noob questions
Thread.sleep блокирует поток. Независимо ни от каких "фокусов" с async/await, Future, IO, etc, Thread.sleep заблокирует поток.
Если вы хотите подождать без блокировки потока, то вам нужно что-то вроде akka.pattern.after https://doc.akka.io/docs/akka/current/futures.html
источник

S

Simon in Scala Learning & Education: Ask for Review & Noob questions
Если у вас нет под рукой akka, то, возможно, вы не привязаны к Future и можете вместо него использовать любую из реализаций IO (ZIO/Monix/cats-effect). Например ZIO.sleep делает как раз то, что вам нужно.
источник

RS

Roman Semisotnov in Scala Learning & Education: Ask for Review & Noob questions
А если вместо thread.sleep будет другая блокирующая операция (например команда другому запущеному в ОС процессу сделать что-либо(например команда браузеру сделать что-либо в selenium)), async/await мне поможет в этом?
источник

RS

Roman Semisotnov in Scala Learning & Education: Ask for Review & Noob questions
Имею ввиду чтобы поток не блокировался
источник

S

Simon in Scala Learning & Education: Ask for Review & Noob questions
Вопрос в том на каком пуле эта операция заблокирует поток
источник

S

Simon in Scala Learning & Education: Ask for Review & Noob questions
async/await - сахар над flatMap на Future
источник

RS

Roman Semisotnov in Scala Learning & Education: Ask for Review & Noob questions
Вы имеете ввиду какой конкретно тип I xecutioncontext?
источник

S

Simon in Scala Learning & Education: Ask for Review & Noob questions
Превратить блокирующие операции в неблокирующие не получится
источник

RS

Roman Semisotnov in Scala Learning & Education: Ask for Review & Noob questions
А как тогда превращают их разработчики библиотек для работы с http и бд например?)
источник

RS

Roman Semisotnov in Scala Learning & Education: Ask for Review & Noob questions
Можете посоветовать литературу или ресурсы чтобы я сам мог отвечать себе на подобные вопросы?)
источник

S

Simon in Scala Learning & Education: Ask for Review & Noob questions
2 варианта: либо все блокирующие операции выполняют на блокирующем пуле потоков (например так делают slick и doobie, когда общаются с БД через jdbc), либо используют не блокирующий i/o (как в случае с http).
источник

С

Сергей in Scala Learning & Education: Ask for Review & Noob questions
мутабельную :) я создаю кеш, для фибоначчи, чтоб оно не считало одно и то-же несколько раз, поэтому есть идея, что ассоциативный массив будет мутабельным )
источник

С

Сергей in Scala Learning & Education: Ask for Review & Noob questions
спасибо за решение, но я хочу понять, как доработать свое :) все-таки цель у меня выучить скалу )) https://scastie.scala-lang.org/XVv5yf2UTkefYtj2GYyAKQ и вот главная проблема, почему на 9 строке кеш не обновляется )
источник

С

Сергей in Scala Learning & Education: Ask for Review & Noob questions
читаю, спасибо!
источник

N

Nikolai in Scala Learning & Education: Ask for Review & Noob questions
источник

С

Сергей in Scala Learning & Education: Ask for Review & Noob questions
да, все, я решил. спасибо за помощь :) двигаюсь дальше в изучении ))
источник

N

Nikolai in Scala Learning & Education: Ask for Review & Noob questions
1. Вы используете иммутабельную мапу. var относится к ссылке, а не к самой коллекции. 2. Вместо метода updated, который не меняет старую мапу, а возвращает новую, надо использовать update
источник

СС

Святослав Семеркин... in Scala Learning & Education: Ask for Review & Noob questions
подскажите плиз, кто нибудь сталкивался с ситуацией когда akka.kafka.testkit.internal.KafkaTestKit отваливается по таймауту при попытке создать топик?
источник

GP

Grigory Pomadchin in Scala Learning & Education: Ask for Review & Noob questions
а кафка инстанс какой у нее? инмомори?
источник