Skip to content

Instantly share code, notes, and snippets.

View chnbohwr's full-sized avatar
🐳
Enjoy development fun 享受開發樂趣

HsuChing(Hyman) chnbohwr

🐳
Enjoy development fun 享受開發樂趣
View GitHub Profile
@chnbohwr
chnbohwr / getNestedValue.js
Created August 29, 2018 03:47 — forked from bbandydd/getNestedValue.js
get Nested Object value without using if conditions
const obj = {
a: {
b: {
d: 2
},
c: {
e: 5
}
}
};
const { parentPort } = require('worker_threads');
parentPort.on('message', (buffer) => {
const int8Arr = new Int8Array(buffer);
int8Arr[0] = 99;
parentPort.postMessage('change value ok');
});
const { Worker } = require('worker_threads');
const path = require('path');
const buffer = new SharedArrayBuffer(1);
const worker = new Worker(path.resolve('./worker.js'));
worker.on('message', () => {
// check buffer was changed ?
const int8Array = new Int8Array(buffer);
console.log(`main thread buffer: ${int8Array[0]}`)
const { parentPort } = require('worker_threads');
const sha256 = require('sha256');
parentPort.on('message', (count) => {
const shaArray = Array.from(Array(count)).map(() => sha256(Math.random().toString()))
parentPort.postMessage(shaArray);
});
const { Worker } = require('worker_threads');
const path = require('path');
const arrayCount = 2000000;
const threadCount = 4;
let initialTime = new Date();
for (let i = 0; i < threadCount; i++) {
const worker = new Worker(path.resolve('./worker.js'));
worker.on('message', () => {
const sha256 = require('sha256');
const arrayCount = 2000000;
console.time('single thread');
Array.from(Array(arrayCount)).map(() => sha256(Math.random().toString()));
console.timeEnd('single thread');
const { parentPort } = require('worker_threads');
parentPort.on('message', (message) => {
console.log(`worker get message: ${message}`);
parentPort.postMessage('got it!');
});
const { Worker } = require('worker_threads');
const path = require('path');
const worker1 = new Worker(path.resolve('./worker.js'));
worker1.on('message', (message) => {
console.log(`main thread get message: ${message}`);
});
worker1.postMessage('hello world');
const { parentPort, workerData } = require('worker_threads');
console.log(workerData);
let b = 0;
for (let i = 0; i < 1000; i += workerData.base) {
b += i;
}
parentPort.postMessage(b);
const { Worker } = require('worker_threads');
const path = require('path');
const worker1 = new Worker(path.resolve('./worker.js'), { workerData: { base: 1 } });
const worker2 = new Worker(path.resolve('./worker.js'), { workerData: { base: 10 } });
worker1.on('message', (message) => {
console.log(`worker1 message: ${message}`);
});