Pull to refresh

Comments 4

Ну то есть корутины из Котлина. Главный плюс (и он же по идее минус) - семантика вызовов наподобие Thread.sleep меняется в зависимости от того в настоящем потоке он выполняется или в легком.

В случае VirtualThread.sleep(), вы пометите виртуальный поток как спящий и создадите запланированную задачу на старой доброй Java (на основе потоков ОС) ScheduledThreadPoolExecutor. Эта задача распаркует / возобновит ваш виртуальный поток по истечении заданного времени

что-то мне кажется, это не то что происходит во время выполнения sleep. я думаю, что sleep помечает тред как доступный для диспетчеризации корутин в него. никаких ScheduledTask не должно создаваться при этом.

Проблема реальных приложений заключается в том, что они делают глупые вещи, например, обращаются к базам данных, работают с файловой системой, выполняют вызовы REST или обращаются к каким-то очередям/попотокам.

Хммм... А вы уверены, что это глупые вещи? А что же тогда умные?

В статьях про хаскель в этом месте любят говорить про сайд-эффекты. Типа, вот у нас чистые функции, которые понятны, просты, их компилятор может вычислять каждый раз или закешировать (или вычислять лениво).. Но все это по идее должно исчезнуть, когда программа делает I/O или запрос к БД. Это что-то, что делать в реальности необходимо, но что само по себе быстро ломает стройность картины.

Я думаю, здесь "глупые" нужно понимать в смысле "грязных функций" или сайд-эффектов.

Sign up to leave a comment.

Articles