4 ms·
I thought the primary purpose of web workers was that the browser can run the workers in parallel to the main thread. As the spec says: > [Web workers] allow l
by sa46 3y ago
I thought the primary purpose of web workers was that the browser can run the workers in parallel to the main thread. As the spec says:
> [Web workers] allow long tasks to be executed without yielding to keep the page responsive
- orangepurple 3y agoThe workers don't block painting and they do not run in a separate process. That's why it's concurrent but not parallel. The web worker does work whenever the main thread is not painting and there is a free time slot. The browser is not painting all the time. You don't get extra calculation performance with web workers. You just create the illusion of a smooth experience because you don't block painting. It does not complete faster.
- sa46 3y agoThreads can certainly run in parallel with one another if the OS schedules them on different cores. I did a quick experiment and the main thread and worker threads run in parallel. https://github.com/jschaf/web-worker-experiment/ https://github.com/jschaf/web-worker-experiment/ > You don't get extra calculation performance with web workers The primary purpose of web workers is extra calculation performance. From MDN: > Workers are mainly useful for allowing your code to perform processor-intensive calculations without blocking the user interface thread
- orangepurple 3y agoI should clarify that you can't get extra calculation performance which easily scales with core count due to the gotchas around threading that you mentioned.