Maison > interface Web > js tutoriel > le corps du texte

Javascript n'est PAS mono-thread !!

王林
Libérer: 2024-07-23 11:57:20
original
516 人浏览过

NON ! vous n'avez pas mal appris que JavaScript est un langage à thread unique. Il s'agit d'un langage monothread qui a accès à un seul thread principal pour exécuter le code. Ainsi, lorsque nous parlons de programmation synchrone, nous parlons de ce thread solitaire qui fait tout le gros du travail et exécute notre code.
Image description

Mais en réalité, le moteur V8 et Node.js utilisent une bibliothèque C appelée libuv pour accéder à six threads supplémentaires. Deux d'entre eux sont utilisés pour effectuer le garbage collection et les autres sont utilisés pour effectuer des tâches en arrière-plan comme la programmation asynchrone.

Oui. Lorsque nous disons que le code est asynchrone ou non bloquant, ce qui se passe en réalité, c'est que le code asynchrone est transmis à ces threads supplémentaires avec le rappel et que le thread principal continue de faire son travail sans bloquer le reste du code.

Javascript is NOT single threaded!!
Lorsque le code asynchrone est terminé, la fonction de rappel est placée dans la file d'attente des événements avec soit une erreur, soit les données requises. Ensuite, la boucle d'événements le pousse dans la pile d'appels et boum, nous obtenons notre résultat, pour comprendre cela avec du code. Regardons la méthode readfile du module fs.

fs.readFile("demo.text","utf8",(err,data)=>{
    if(error){       
        return error
    }
    console.log("output",data);
})
Copier après la connexion

Dans le code ci-dessus, la méthode readfile est transmise aux threads d'arrière-plan. La lecture s'effectue en arrière-plan et, une fois celle-ci terminée, le rappel est placé dans la file d'attente des événements avec une erreur ou des données.

Javascript is NOT single threaded!!

Une fois dans la pile d'appels, le rappel est exécuté et nous nous retrouvons soit avec une erreur, soit avec les données en sortie.
Merci d'avoir lu, j'espère avoir pu expliquer les moyens à thread unique en Javascript.

以上是Javascript n'est PAS mono-thread !!的详细内容。更多信息请关注PHP中文网其他相关文章!

source:dev.to
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!