Size: a a a

2021 December 02

S

Snusmumriken in pro.lua
Угу, ну я цапнулся к словам, они многозначны.
источник

VM

Vadim Misbakh-Solovi... in pro.lua
так что "легковесный" тут как издевка
источник

n

nibble in pro.lua
Думаю, что они сравнивают с другими продуктами, что было бы логично с точки зрения мракетинга
источник

S

Snusmumriken in pro.lua
Ну типа да, относительные координаты.
источник

RM

Roy Mustang in pro.lua
Это разве цпу не будет грузить?
источник

S

Snusmumriken in pro.lua
Не важно, таска-корутина прерывается пока не выйдет из таймера. Нормальный слип влепишь снаружи: дёрнул все таски по очереди, те тут же вышли потому что спят, таск-менеджер уснул. Проснулся — снова дёрнул таски — те кто спит продолжают спать, те кто закончил — делают работу.

Корутины. Если ты вставишь нормальный слип в корутине — уснёт нафиг весь процесс со всеми тасками и менеджером корутин заодно, а не конкретная таска-корутина.
источник

S

Snusmumriken in pro.lua
И тем же образом можно в одном потоке разбивать длительные процессы. Допустим, у нас охрененно здоровый массив. Настолько здоровый что сортируется секунд десять, например. Мы такие берём и корутинизируем процесс сортировки: обработав N элементов (подобранных эмпирически), функция сортировки такая делает yield и передаёт управление вызвавшей её фигне. Вызвавшая фигня такая берёт, рисует полосочки прогресса, обрабатывает пользовательский ввод, а потом снова дёргает функцию сортировки. И так до победного конца.
Массив сортируется растянуто по времени, параллельно с процессом сортировки рисуется интерфейс и обрабатывается ввод. И всё в один поток, со всеми фишками однопоточности: невозможность гонок, локов, неконсистентности, требований писать атомарные обвязки и всё такое.

P.S. Однопоточность — это прекрасно.
источник

VM

Vadim Misbakh-Solovi... in pro.lua
прекрасно только когда не осиливаешь многопоточность :)
источник

VM

Vadim Misbakh-Solovi... in pro.lua
впрочем, редко кто её осиливает, на самом деле :)
источник

VM

Vadim Misbakh-Solovi... in pro.lua
однопоточность очень греет задницу тем фактом, что у тебя как бы с одной стороны куча мощностей (4-128 ядер процессоров), а использовать ты можешь только малую их часть
источник

S

Snusmumriken in pro.lua
Ммм, смотри. Я "освоил" многопоточность до корутин, и трахался с ней гораздо больше чем требовалось.

Для бытовых задач асинхронной однопоточки хватает с головой, а настоящие потоки нужны в двух случаях:
1. Обработка данных, которые можно распараллелить и получить на этом осязаемый прирост — различные фото-видеоредакторы и всякие понтовые научные расчёты над бигдатами;
2. Попытки в "реальное время", которые нужны прямо скажем не всегда.
источник

VM

Vadim Misbakh-Solovi... in pro.lua
а ещё написание утилит использующих сеть и gui одновременно
источник

S

Snusmumriken in pro.lua
ОС распараллелит твои процессы, то что одно отожрёт один поток — означает что куча других задач сожрут остальные, им тоже надо.

А вот где прям было обидно за однопоточность — игра Dwarf Fortress. Она лагала на моих ноутбуках. Но там неимоверное потребление цпу.
источник

VM

Vadim Misbakh-Solovi... in pro.lua
ты посто не представляешь как у меня горела жопа от virt-manager, например, который на питоне-с-культями, и там гуй и сеть в одном потоке. Пока сетевой запрос тупит - гуй вешается намертво.
источник

S

Snusmumriken in pro.lua
Ну для не-tcp-сетки нужно подобие "реального времени", с tcp в целом пофигу, ОС разберётся, ты знай себе читай уже заботливо собранные из пакетов байтики. А вот на udp/ip-производных уже надо очень быстро чистить входящий буфер и посылать свежие данные с конкретными таймингами, ведь скорость тоже регулируется тобой, ОС не будет ничего удерживать для тебя — засрёшь канал и всё что было отправлено после энного пакета неожиданно испарится. То же самое, кстати, с воспроизведением и процессингом аудио — там крайне желательно что-то похожее на реальное время чтобы вовремя подсовывать свежие кусочки звука, и чтобы один поток был занят одной единственной задачей дабы не лагало.

Опять таки, это крайне узкоспециализированная фигня, мало кто этим занимается, и кстати, чтобы сделать такое на многопоточке, знать многопоточку не нужно.
источник

VM

Vadim Misbakh-Solovi... in pro.lua
ты точно не бот?
источник

AZ

Aydar Zarifullin in pro.lua
Это ж вроде бот тележный, суффикс bot в юзернейме видишь?
источник

U

Unsupported User in pro.lua
А сам как думаешь?)
источник

VM

Vadim Misbakh-Solovi... in pro.lua
не вижу у него вообще юзернейма
источник

VM

Vadim Misbakh-Solovi... in pro.lua
если б я как-то думал на этот счёт - не спрашивал бы :)
источник