2013-08-14 3 views
0

У меня есть три функции. Так же, как образец, приведенный ниже.Параллельное исключение в nodejs

function1 { 

    // Do some validation 

} 
function2 { 

// Do some read and write operations in DB 

} 
function3 { 

// Do some parallel task 

} 

Как выполнить все три функции, параллельные в nodejs. Заранее спасибо.

+1

Возможный дубликат http://stackoverflow.com/questions/4631774/coordinating-parallel-execution-in-node-js – sbarow

+0

Взгляните на [это] (http://stackoverflow.com/questions/4631774/координация -parallel-исполнение-в-узел-JS) – NREZ

ответ

3

Вы можете использовать fork, как указано выше, или проще использовать пакет async от caolan.

1

Это зависит от того, что делают функции.

Если все они используют асинхронный ввод-вывод, вы можете просто вызвать их, чтобы каждый из них мог запустить этот I/O, который будет работать параллельно.

function1(); 
function2(); 
function3(); 

Примечание: Если вам необходимо координировать свои дополнения, то вы хотите посмотреть в flow control библиотеки, такие как async или q.

Но, если какой-либо из них синхронно, тогда становится сложнее. Вам нужно будет ввести асинхронный ввод-вывод вокруг каждого из них. Это можно сделать через clusters или child_process, чтобы начать несколько процессов node.

Но это невозможно сделать только в JavaScript. JavaScript все еще однопоточный с узлом, поэтому синхронные задачи блокируют выполнение другого кода JavaScript. Асинхронный ввод-вывод возможен только через native C/C++ binaries с использованием libuv.

Смежные вопросы