![[personal profile]](https://www.dreamwidth.org/img/silk/identity/user.png)
вот те товарищи, которые так расписывали преимущества колбек-соплей перед многопоточностью, пускай попробуют написать хотя бы один алгоритм, где есть два вложенных цикла.
и waitAll, да.
(псевдокод)
ну вот хоть такое, например ;)
да, detectBoundaries и SHA256 надо делать в вебворкерах, или хотя бы бить их на куски таймаутами, а то браузер скажет "страница повисла", и юзер обидится.
ну как, все еще хочется делать CPS?
вот и мне не хочется. хочется акторы, и акторы с тредами, а не с короткими обработчиками событий. они, кхм, гораздо больше подходят для выражения воркфловов, как только в воркфловах появляются циклы, и не требуют всего этого мозговыворачивания для форварда локальных переменных, как минимум.
и waitAll, да.
(псевдокод)
queue=[]; foreach_parallel(file in files){ detectChunkBoundaries(); foreach(chunk in file){ queue.add(AES_encrypt(chunk), SHA(encrypted), file.name); } } chunkers.waitAll(); queue.unique(); encrypters.waitAll(); foreach(var q in queue){ q.upload() } uploaders.waitAll(); chunk2 = buildChunkList(); chunk2.upload(); alert(done)
ну вот хоть такое, например ;)
да, detectBoundaries и SHA256 надо делать в вебворкерах, или хотя бы бить их на куски таймаутами, а то браузер скажет "страница повисла", и юзер обидится.
ну как, все еще хочется делать CPS?
вот и мне не хочется. хочется акторы, и акторы с тредами, а не с короткими обработчиками событий. они, кхм, гораздо больше подходят для выражения воркфловов, как только в воркфловах появляются циклы, и не требуют всего этого мозговыворачивания для форварда локальных переменных, как минимум.