Maison >Problème commun >Qu'est-ce qu'un fil

Qu'est-ce qu'un fil

青灯夜游
青灯夜游original
2019-06-11 13:51:4772012parcourir

Thread est la plus petite unité sur laquelle le système d'exploitation peut effectuer la planification des opérations. Il est inclus dans le processus et constitue la véritable unité opérationnelle du processus. Un thread fait référence à un seul flux de contrôle séquentiel dans un processus. Plusieurs threads peuvent s'exécuter simultanément dans un processus et chaque thread exécute différentes tâches en parallèle.

Qu'est-ce qu'un fil

Les threads sont l'unité de base de la planification et de la répartition indépendantes. Les threads peuvent être des threads de noyau planifiés par le noyau du système d'exploitation, tels que des threads Win32 ; des threads utilisateur planifiés par le processus utilisateur lui-même, tels que POSIX Thread sur la plate-forme Linux ; ou une planification mixte par le noyau et les processus utilisateur, tels que les threads Windows 7 ; .

Plusieurs threads dans le même processus partageront toutes les ressources système du processus, telles que l'espace d'adressage virtuel, les descripteurs de fichiers, le traitement du signal, etc. Mais plusieurs threads dans le même processus ont leurs propres piles d'appels, leur propre contexte de registre et leur propre stockage local de thread.

Un processus peut avoir plusieurs threads, et chaque thread effectue différentes tâches en parallèle.

Caractéristiques

Dans un système d'exploitation multithread, plusieurs threads sont généralement inclus dans un processus. Chaque thread est l'unité de base de l'utilisation du processeur et représente le coût. entité. Les threads ont les propriétés suivantes.

1), entités légères

Les entités du fil ne possèdent fondamentalement pas de ressources système, mais disposent seulement de quelques ressources essentielles qui peuvent assurer un fonctionnement indépendant.

Les entités de thread incluent les programmes, les données et le TCB. Thread est un concept dynamique et ses caractéristiques dynamiques sont décrites par Thread Control Block (TCB).

2), unité de base de planification et d'expédition indépendantes.

Dans un système d'exploitation multithread, un thread est l'unité de base qui peut s'exécuter indépendamment, et est donc également l'unité de base de la planification et de la répartition indépendantes. Parce que les threads sont très "légers", le changement de thread est très rapide et entraîne peu de frais généraux (dans le même processus).

3), peuvent être exécutés simultanément.

Plusieurs threads d'un processus peuvent être exécutés simultanément, et même tous les threads d'un processus peuvent être exécutés simultanément de la même manière, les threads de différents processus peuvent également être exécutés simultanément, en utilisant pleinement la capacité du processeur et périphériques pour fonctionner en parallèle.

4), ressources de processus partagées.

Chaque thread d'un même processus peut partager les ressources appartenant au processus. Cela se manifeste d'abord par : tous les threads ont le même espace d'adressage (l'espace d'adressage du processus), ce qui signifie que les threads peuvent accéder à tous. adresse virtuelle dans cet espace d'adressage ; de plus, vous pouvez également accéder aux fichiers ouverts, aux minuteries, aux mécanismes de sémaphore, etc. appartenant au processus. Étant donné que les threads d'un même processus partagent de la mémoire et des fichiers, les threads communiquent entre eux sans appeler le noyau.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
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