Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Параллельный запуск функций (https://javascript.ru/forum/misc/25007-parallelnyjj-zapusk-funkcijj.html)

lorents 22.01.2012 00:58

Параллельный запуск функций
 
Добрый вечер!
Допустим у меня есть функция (обрабатывает изображение) и у меня есть 5 изображений (назовем их image1, image2, ..., image5).

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

Допустим запустили последовательно обработку image1 и image2 (они обрабатываются за разное время), и как только одно из изображений заканчивает обработку, мы запускаем image3, и т.д. И так пока мы не обработаем все изображения.

Подскажите, как можно все это реализовать?

Aetae 22.01.2012 01:11

Javascript однопоточный язык.
Вы можете имитировать многопоточность используя setTimeout( func , 1 )
Но всё равно все действия будут выполняться по очереди, пока одно не закончено второе не начнтся.

melky 22.01.2012 01:13

что значит "запустили на обработку". это что, отсылка серверу, или обработка в canvas?

в любом случае, параллелизма можно достичь только с помощью webWorkers.

lorents 22.01.2012 11:28

melky
"запустили на обработку" - у меня есть программа, работает через командную строку, суть ее в том, что запускаем программу с изображением.

не подскажите, через webWorkers можно запускать отдельно скрипт на windows?

melky 22.01.2012 11:39

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

lorents 22.01.2012 12:12

у меня еcть проект Image Catalyst, хочу его перевести на javascript

Вы не могли посмотреть и сказать, можно ли организовать все это средствами javascript?

а через что можно запустить скрипт под windows, если можно отдельно от браузера? Смотрел на движок V8, нет его компилированной версии?

Magneto 22.01.2012 12:40

Node.js

lorents 22.01.2012 14:15

на счет Node.js, хотел узнать:
1. может ли работать с многоядерными процессорами
2. и что там на счет утечки памяти? проект может работать сутками.

можно пример работы с webWorkers?
Есть папка с изображениями PNG, как можно сделать в два потока обработку изображений. Обработка происходить с помощью приложения truepng с параметрами -zc9 -zm1-9 -zs0-3 -fe -a1 -force "изображение PNG". truepng и папка находится в одной папке со скриптом.

Kolyaj 25.01.2012 09:56

Цитата:

Сообщение от lorents
1. может ли работать с многоядерными процессорами

Если несколько процессов запустить.

Цитата:

Сообщение от lorents
2. и что там на счет утечки памяти? проект может работать сутками.

Может. Нет никаких утечек.


Часовой пояс GMT +3, время: 09:36.