2015-08-17 4 views
0

У меня есть 3 задачи, выполняющиеся параллельно. В первой задаче я использую метод underscore для цикла через массив (например, _.each). Этот метод подчеркивания блокирует другие 2 задачи? Если да, не так ли плохо использовать модуль подчеркивания в node.js?Должен ли я использовать функцию подчеркивания в node.js?

+0

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

+0

Являются ли эти задачи асинхронными? Какие подпрограммы вы звоните? –

+0

@KevinB: что вы имеете в виду, если только вы не переместите его на другой узел? Другими словами, что такое «процесс другого узла»? –

ответ

2

Да, он блокирует. Нет, это не имеет никакого отношения к использованию подчеркивания.

Javascript single threaded. Когда вы регистрируете кучу обработчиков событий или setTimeouts, они НЕ запускаются параллельно - каждый из них запускается до тех пор, пока он не вернется к циклу событий, а затем один из них будет удален из очереди событий и выполнен.

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

Это не имеет никакого отношения к подчеркиванию, это просто характер Javascript.

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