Как стать автором
Обновить

Комментарии 15

Перестаньте уже переводить слова, которые явно переводить не стоит: потоки воркеров, мерседес бенз… Ведь Вы же пишите Node.js, а не нод.джиэс.
Node.js — имя собственное, поэтому есть смысл оставить его без перевода.
А вот «worker threads» — в данном случае, имя нарицательное, и по-моему стоило перевести, как «рабочий поток» или «поток обработки».
Или перестаньте переводить статьи, которые так же явно не стоит переводить. Данная фича интересна да, но интерес явно должен быть сосредоточен вокруг бенчмарков. API банально и похоже на типичную работу с событиями в node.js. Это вторая статья о потоках в ноде на хабре за эту неделю… обе можно дальше заголовков не читать, тот случай(как и многие другие) когда лучше сразу открывать доку nodejs.org/api/worker_threads.html
Тут больше описали смысл вообще этого, а не того как по мануалу с ним работать и какое у него апи. Это новая фича, по этому «keep calm and ignore posts with worker_threads».
Извиняйте если кого-то задел, намерений таких нет, просто хотелось как раз сказать, что не стоит описывать смысл потоков используя Node.js, это не та технология. Работаю с нодой начиная с версии 0.4 и так сказать фанат этого стека, с интересом открывал статью, интерес не удовлетворен. Если кто-то сделает тесты на производительность(возможно я и сам сделаю по мере свободного времени) — будет круто. Это весь посыл.
Ну, производительность даже менять не нужно, ибо нода однопоточная и выигрыш будет 100% и очень серьезный при условии что теперь можно вынести синхронные операции в отдельный поток.
У нас с вами видимо разный подход к сравнительному анализу. В моей практике первый этап это технический анализ, графики, сводные таблицы с конкурирующими технологиями и т.д. И только потом утверждения где и в каком объеме будет «выигрыш». Нет никаких данных об издержках на сообщения между потоками, как себя поведет нода на большом количестве потоков и т.д. Это уже 3-ий коммент об одном и том же, что делает меня не лучше автора статьи, так что далее я пасс))
Ключевой была фраза «нода однопоточна», весь сервер однопоточен, любой синхронный код стопорит абсолютно всю очередь соединений пока он не выполнится. И если раньше такая проблема решалась микросервисами или другими решениями (не нода), то сейчас можно это обойти. Если вы не видите выигрыша, то будете дальше решать проблемы старыми способами. Это не замена евентам или асинхронности, это дополнение.
Уважаемый, не стоит ванговать за методологии разработчиков о которых вы ничего не знаете и тем более рассказывать про однопоточность...(тут просто фейспалм). Я вижу выигрыш и ни слова не обронил против этого нового модуля, а так же с 99% вероятностью буду проводить тесты и изучать код под капотом. Не хотите объективных данных о его работе — ну хорошо, ваше право. А мое право проявлять интерес к сравнительному анализу, для того чтобы принимать решения в пользу производительности в каждом конкретном случае. Как правило работаю с большим объемом трафика и можете считать профессиональной деформацией — привычку думать заранее.
То что вы форкаете ноду, не значит что соединения не ждут при синхронных операциях, форков у вас гарантированно меньше чем соединений, так что не нужно этих пафосных фейспалмов. Я так же отвечу вашими же словами: я не говорил что тесты делать не нужно, и мне не нужно объективных данных. Так что не нужно делать выводы и за меня решать что мне нужно а что мне не нужно. Я лишь сказал что это нововведение 100% даст прирост в производительности ибо можно вынести синхронный код. Дальше вы уже надумали себе и спорите со своими выводами.
Эх, еще бы понять о чем мы спорим. Спасибо за дискуссию, к сожалению ничего нового не узнал и свою позицию донести не смог.
Один момент. В Node.js отродясь были «потоки», которые nodejs.org/api/stream.html. Как мне кажется слово уже занято, и использование его в другом контексте будет приводить к путанице. Во всяком случае, я до второго раздела не понимал о чем вообще новость.

Тот модуль который добавили сейчас, сначала называли просто worker, а потом дописали worker_threads. Но thread еще переводят как «нить», чтобы не путать с потоками. А название может еще поменяется потому, что тоже мало кому нравится.

Те потоки, которые threads, подразумеваются как "потоки [выполнения программы]", а те, что streams — как "потоки [данных (или ввода/вывода)]". Слово Нить мне лично не нравится, и небольшая двойственность слова Поток мне совершенно не мешает. Это вполне устоявшийся термин в рунете.

Что вы думаете о поддержке многопоточности в Node.js?

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

Задача которую решают сейчас — вытащить эти возможности в юзерспейс (с завистью глядя на Web Workers в браузерах). Microsoft и Alibaba в разное время уже патчили ноду подобным образом. Они уж точно знают толк в, значит это точно кому-нибудь нужно. Но юная девушка тут всех опередила. :)
Попал на эту статью как раз занимаясь поиском возможности распараллелить процесс обучения нескольких ИНС.
Зарегистрируйтесь на Хабре, чтобы оставить комментарий