4 ms·
Somebody better tell the Node.js cluster guys :-) They manage without threads pretty well, I think. Shared state is deliberate, outside of individual processe
by Roboprog 8y ago
Somebody better tell the Node.js cluster guys :-)
They manage without threads pretty well, I think. Shared state is deliberate, outside of individual processes, rather than accidental in-process. As it should be unless you are doing some serious systems level programming.
- oldmanhorton 8y agoTo be fair, node.js just merged the --experimental-workers module for actual webworker-style threading.
- amelius 8y agoDoes it allow shared (immutable) data structures? I.e. does it allow passing large parts of data structures without copying?
- the-dude 8y agoI think parent is referring to desktop applications.
- Roboprog 8y agoGotta love the downvotes. So, it’s offensive to suggest that there are alternatives to threading on a post about WHY threading IS a bad idea??? Actor model with messages (events) sent between potentially isolated processes, perhaps? If you truly need to run a compute intensive task in the background, the effort to [de]serialize a “command object” to and from another process should not be much overhead, vs sharing almost all memory by default. Once you reach the point where you are starting a thread pool at start up, rather than spawning threads on demand, why not just have a process pool? Shared memory blocks can also be used to explicitly share data too large to effectively serialize as a message / event. If you truly have something that pumps huge amounts of data between compute intensive tasks, then threads make sense. Proceed with extreme caution, and try to encapsulate the trick bits.