Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- "use strict"
- const { workerData, parentPort } = require('worker_threads');
- let id = workerData.id;
- let inArr = workerData.arr; // общий для всех воркеров массив
- console.log(`Worker ${id} is active.`);
- parentPort.on('message',function(message){
- if (message === "exit") {
- parentPort.close();
- } else {
- let f = 0; // Просто считаем фиббоначу хз чего много раз. Чтобы проц заебался хоть чуть чуть.
- for (let i = 100;i > 1; i--){
- for (let j = 0; j < inArr.length; j++){
- f = fib(message + randomInt(i) + inArr[j]); // Что бы было больше смысла считаем учитывая значения "общего массива" и переданного значения
- }
- }
- parentPort.postMessage({"id": id, "data": f});
- setTimeout(() => parentPort.postMessage(`ready`), 1); // говорим, что свободны и хотим ещё поработать.
- }
- });
- setTimeout(() => parentPort.postMessage(`ready`), 1); // для инициализации воркера в основном процессе.
- function randomInt(max) {
- return Math.floor(Math.random() * max);
- }
- function fib(num){ // считает число Фиббоначи
- let a = 1;
- let b = 0;
- let temp;
- while( num >= 0 ){
- temp = a;
- a = a + b;
- b = temp;
- num--;
- }
- return b;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement