В Javascript нет потоков, но у нас есть рабочие.
Рабочие могут быть хорошим выбором, если вам не нужны общие объекты.
Большинство реализаций браузера фактически распределяют работников по всем ядрам, позволяя вам использовать все ядра. Вы можете увидеть демо этого здесь .
Я разработал библиотеку под названием task.js , которая делает это очень простым.
task.js Упрощенный интерфейс для выполнения кода с интенсивным использованием процессора для всех ядер (node.js и web)
Примером будет
function blocking (exampleArgument) {
// block thread
}
// turn blocking pure function into a worker task
const blockingAsync = task.wrap(blocking);
// run task on a autoscaling worker pool
blockingAsync('exampleArgumentValue').then(result => {
// do something with result
});