Un worker est un thread indépendant.
Quand tu l'initialize tu lui passe l'URL d'un fichier Javascript et il se charge de le télécharger et l'executer. Il n'est pas possible de l'initializer avec une fonction.
Ensuite le seul moyen de communiquer avec lui c'est de lui envoyer des messages. Ces messages seront copiés, donc non il n'y a pas moyen de partager des variables entre workers.
Autrement dit il n'y a aucune mémoire partagé entre les différents thread (le principal et le/les Worker). Donc tu ne peut pas tomber dans les pièges classiques des applications multithreads. De plus il faut comprendre que ça implique que les workers ne peuvent pas directement modifier le DOM.
Àmha, la seule application pratique des workers c'est de passer des taches CPU intensives en arrière plan. Bref c'est franchement pas pour tout le monde.
[^] # Re: workers ...
Posté par Jean B . En réponse au journal Réflexion sur ASM.js ou quand le javascript deviens enfin performant :. Évalué à 5.
Un worker est un thread indépendant.
Quand tu l'initialize tu lui passe l'URL d'un fichier Javascript et il se charge de le télécharger et l'executer. Il n'est pas possible de l'initializer avec une fonction.
Ensuite le seul moyen de communiquer avec lui c'est de lui envoyer des messages. Ces messages seront copiés, donc non il n'y a pas moyen de partager des variables entre workers.
Autrement dit il n'y a aucune mémoire partagé entre les différents thread (le principal et le/les Worker). Donc tu ne peut pas tomber dans les pièges classiques des applications multithreads. De plus il faut comprendre que ça implique que les workers ne peuvent pas directement modifier le DOM.
Àmha, la seule application pratique des workers c'est de passer des taches CPU intensives en arrière plan. Bref c'est franchement pas pour tout le monde.