Avantage & inconvénients
Avantages
Sympa !
- Permet de traiter des tâches lourdes sans bloquer le processus principal,
- Permet de communiquer entre les threads et le processus principal via post message,
- Mémoire partagée entre le processus principal et les workers,
- On peut créer les workers à la demande,
- On peut splitter le traitement sur plusieurs threads (forcément !).
Inconvénients
Hé voué !
- La consommation mémoire fortement augmente avec le nombre de threads,
- L'usage des
SharedArrayBuffer
etArrayBuffer
n'est pas simple à aborder, - La création d'un worker est relativement lent.
Point d'attention
Les worker threads peuvent sembler être une solution miracle à un script lent. Mais il ne sera pas ne sera pas la solution dans le cas d'un script massivement asynchrone.
Alternatives ?
Il est possible d'utiliser les extensions natives de Node.js pour créer du code plus performant en C++ ou Rust. Mais cela nécessite de connaître ces langages.