22.07.2016, 14:49
|
|
Быдлокодер;)
|
|
Регистрация: 19.11.2010
Сообщений: 4,338
|
|
Цитата:
|
Реализация многопоточности на фронте - идиотизм?
|
Она уже есть. Идиотизм создавать ненужную абстракцию.
2 или 3 года назад, когда я впервые реализовал потоки на генераторах, я писал заметку:
Цитата:
|
В отличии от Worker-ов, которые являются сторонним API от браузера, потоки Collection полностью построены поверх JS, т.е. будут одинаково работать как в браузере, так и на сервере или десктопе, где есть поддержка ES6 generators. Потоки Collection могут быть созданы внутри WebWorker-а.
Также, поскольку потоки Collection работают в рамках потока, в котором были созданы, то у них есть прямой доступ к переменным замыкания и DOM, а в случае WebWorker потоки изолированы от главного потока и могут общаться только по средствам сообщений.
Количество создаваемых потоков Collection ограничено количеством доступной памяти и может достигать десятков и даже сотней тысяч одновременно работающих потоков, однако следует заметить, что чем больше создано потоков, тем медленнее они будут работать. В WebWorker в рамках домена количество создаваемых потоков строго ограничено и не может превышать некоторого небольшого числа (10-20 одновременных потоков).
Скорость выполнения задачи в потоке Collection обычно ниже, чем скорость простого выполнения в главном потоке или WebWorker, поэтому использовать такие потоки нужно в первую очередь, чтобы не блокировать главный поток, а не для увеличения общей скорости работы, т.к. внутри всё работает последовательно в рамках одного потока.
|
Последний раз редактировалось kobezzza, 22.07.2016 в 14:51.
|