
Product
Rust Support Now in Beta
Socket's Rust support is moving to Beta: all users can scan Cargo projects and generate SBOMs, including Cargo.toml-only crates, with Rust-aware supply chain checks.
webworkers-helper
Advanced tools
A simple Node.js webworker-threads module helper.
Note #1 This module
can be used with any existing version of node.js
and npm
.
By using npmjs.org
:
npm install webworkers-helper --global --save
npm install webworkers-helper --save
webworkers-helper
module installed:
new WorkersHelper().createPool(3, [[ test_cb1, [[1,2,3]] ],
[ (thread, args) => { return self.thread.id; }, [[3,4,5]] ],
[ function (thread, args) { var f = (p1,p2) => { return p1 + p2; }; f(10,20); return 'oops tid = ' + self.thread.id; }, [[5,6,7]] ]]).then(function (ret) { console.log("Completed"); console.log(JSON.stringify(ret)); });
var callback3d = [ [
[ [test_cb1,[[1,2,3]]], [test_cb1,[[4,5,6]]] ],
[ [test_cb1,[[7,8,9]]], [test_cb1,[[10,11,12]]] ] ],
[
[ [test_cb1,[[13,14,15]]], [test_cb1,[[16,17,18]]] ],
[ [test_cb1,[[19,20,21]]], [test_cb1,[[22,23,24]]] ] ]
];
new WorkersHelper().createGrid3d({ "dim_x" : 2, "dim_y" : 2, "dim_z" : 2 }, callback3d).
then(function (ret) {
for (var x = 0; x < 2; x++)
for (var y = 0; y < 2; y++)
for (var z = 0; z < 2; z++)
console.log(ret[x][y][z]);
console.log("Completed3d");
}, console.error);
...
# Constructor
`.ArgvParser`
#####.WorkersHelper()
WorkersHelper - constructs a webworkers helper object,
# Methods
##### .createPool( n, args ).then(function (ret) { ... })
Creating a pool of n webworker-threads. The first parameter of this method `n` is the actual number of threads in a team.
The second parameter `args` is an array of arguments. Each argument in the array is a tuple of two values for each
particular thread to be executed. This tuple contains two values of a thread callback function and an array of arguments
for a specific running thread. `createPool` is the promise-based method that invokes `then` method's callback function at
the end of its execution. The parameter variable `ret` is normally an array of items, each one containing a return value of
a specific thread in a team.
##### .createGrid3d( dim3d, callbacks ).then(function (ret) { ... });
Creates a three-dimensional grid of threads to optimize the performance of solving a multidimensional problem.
The first argument of this function is an object having the following components `{ "dim_x" : n_x, "dim_y" : n_y, "dim_z" : n_z }.
The variables `n_x`,`n_y`,`n_z` normally represent the number of webworker-threads in each dimension. The using of following method
is pretty much similar to using `createPool` method above with only one difference that we must create a three dimensional array of
its arguments such as a tuple of two values of either a thread callback function or an array of each threads arguments. Notice that,
the callback function for each particular thread in a grid might be different. The same as `createPool` method, `createGrid3d`
is the promise-based asynchronously executed method that invokes `then` method's callback function at the end of its execution.
The parameter variable `ret` is a three-dimensional array, in which each item is actually a return value of each particular thread
in a grid.
# Conclusion
That's All Folks :)
# Author
Arthur V. Ratz @ Epsilon Software Development Labs.
FAQs
A simple Node.js webworker-threads module helper.
We found that webworkers-helper demonstrated a not healthy version release cadence and project activity because the last version was released a year ago. It has 1 open source maintainer collaborating on the project.
Did you know?
Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.
Product
Socket's Rust support is moving to Beta: all users can scan Cargo projects and generate SBOMs, including Cargo.toml-only crates, with Rust-aware supply chain checks.
Product
Socket Fix 2.0 brings targeted CVE remediation, smarter upgrade planning, and broader ecosystem support to help developers get to zero alerts.
Security News
Socket CEO Feross Aboukhadijeh joins Risky Business Weekly to unpack recent npm phishing attacks, their limited impact, and the risks if attackers get smarter.