Как запустить программу многопоточного сценария в nodejs

Предисловие (можно не читать, личное мнение автора):

Недавно я начал писать сценарии, связанные со сканером. Как мы все знаем, JavaScript является однопоточным, поэтому в начале написания сценария я был очень глуп и ждал, чтобы сканировать информацию по одному. Одна проблема, которую я обнаружил, заключается в том, что такое поведение слишком неэффективно и должно быть невозможным. Вот и все, поэтому я пошел изучать больше о многопоточности и однопоточности. Фактически, большинство студентов, изучающих компьютер, должны были слышать об основных концепциях. Точно так же, как я знал, что JavaScript является однопоточным. -threaded с самого начала, я это давно слышал.На самом деле js используется еще и как посредник (как говорится) между сервером и клиентом.То есть у js тоже есть свои плюсы.Он не может быть ограничен одним потоком. Продолжая смотреть видео, я обнаружил, что на самом деле в JavaScript также можно выполнять многопоточные операции. var worker1 = new Worker("worker1.js") использует следующий оператор для реализовывать многопоточные операции. Как следует из названия, многопоточность похожа на то, как начальник приглашает нескольких сотрудников работать вместе, что определенно намного эффективнее. Для сотрудника, хотя наш js может быть старшим сотрудником, который может выполнять много чего, он все-таки один человек, особенно при выполнении каких-то простых вещей, у одного потока есть только недостатки, но нет преимуществ (возможно, слишком абсолютное, субъективное ощущение), тем более, что написанный мною низкоуровневый язык сценариев требует многопоточного выполнения , поэтому я хочу использовать многопоточность для сканирования данных, что значительно сокращает затраты времени. Мне не нужно наблюдать за его выполнением. , поэтому я начал использовать webworker в nodejs для реализации многопоточных операций. Ниже приведены этапы реализации:

Используйте Webworker для реализации многопоточности в NodeJs:

Сначала нам нужно установить зависимости через npm i worker, то есть импортировать модуль в node_modules, а затем импортировать

const Worker = require("worker"),我们就可以开始使用他了,

var worker1 = new Worker("worker1.js")

var worker2 = new Worker("worker2.js")

var worker3 = new Worker("worker3.js")

var worker4 = new Worker("worker4.js")

Здесь я создал 4 потока, которые помогут мне сканировать данные, что эквивалентно найму четырех сотрудников!

Я разделил данные, которые нужно сканировать, на четыре равные части и передал четырем сотрудникам.Каждый из них отвечал за часть.Далее есть момент, который требует внимания.Я прописал его в соответствующем скрипте.

const {delay} = require("bluebird");

const Promise = require("bluebird");

const ms = require("ms");

Представлены следующие модули. Прежде чем определить их, необходимо установить их отдельно с помощью команды npm i. npm i +require имя в скобках.

Зачем вам это нужно?

Поскольку мне нужно использовать эту задержку ожидания(ms("10s"));, это необходимо записать в асинхронном методе, иначе будет сообщено об ошибке. Это можно понять, поскольку я выполняю каждый поток отдельно и устанавливаю задержку для них. Это позволяет избежать высокого параллелизма (не знаю, разумно это или нет), потому что программа вылетала прямо при запуске, не устанавливая ее, поэтому мне нужно это установить.

Наконец, сценарии, которые необходимо вызвать, используются в worker1. Не забудьте сегментировать их. Следует отметить, что Worker — это заглавная буква W.

Guess you like

Origin blog.csdn.net/weixin_54515240/article/details/129047758