Que c'est lié à la quantité de "contexte", associés à un fil, et par conséquent, la quantité de temps qu'il faut pour effectuer un "changement de contexte".
Poids lourd fils, (généralement kernel/au niveau de l'os threads) ont beaucoup de contexte (registres du matériel, les piles du noyau, etc). Donc, il faut beaucoup de temps pour basculer entre les threads. Poids lourd de threads peuvent aussi avoir des restrictions quant à eux, par exemple, sur certains Systèmes d'exploitation, les threads du noyau ne peut pas être remplacée, ce qui signifie qu'ils ne peuvent pas forcé d'être mis à l'écart jusqu'à ce qu'ils cèdent le contrôle.
Léger threads d'autre part (généralement, de l'espace utilisateur threads) ont beaucoup moins de contexte. (Ils sont essentiellement de partager le même matériel de contexte), ils ont seulement besoin de stocker le contexte de la pile de l'utilisateur, d'où le temps de prendre de commutateur léger threads est beaucoup plus courte.
Sur la plupart des Systèmes d'exploitation, tous les threads que vous créez en tant que programmeur dans l'espace utilisateur sera léger en comparaison de l'espace du noyau fils. Il n'y a pas de définition officielle de poids lourd et léger, il s'agit plus d'une comparaison entre les threads avec plus de contexte et de discussions avec moins de contexte. N'oubliez pas que chaque OS a son propre mise en œuvre de threads, et les lignes entre le lourd et le léger les threads ne sont pas nécessairement clairement définis. Dans certains langages de programmation et des cadres, lorsque vous créez un "Thread", vous pourriez même ne pas être d'obtenir un plein de thread, vous serez peut-être obtenir un peu d'abstraction qui cache le vrai nombre de threads en dessous.
[Des Os de permettre les discussions de partager l'espace d'adresse, de sorte que les threads qui sont normalement assez lourds, sont légèrement plus léger]
Standard Java threads sont raisonnablement lourds par rapport à Erlang threads qui sont très légers lieu de "spawn" de processus. Erlang montre distribuée de la machine à état fini.
Cependant, comme un exemple, http://kilim.malhar.net/ , une extension Java, basé sur la bibliothèque sur le modèle de l'Acteur de la simultanéité, propose une construction pour poids léger threads en java. Au lieu de Fil de la mise en œuvre de run(), un Kilim fil met en œuvre à partir du Kilim de la bibliothèque à l'aide d'une méthode execute (). Apparemment, il montre de Java runtime surpasse Erlang (au moins dans un environnement local autant que je sache). Java n'ont en fait de telles choses dans la langue d'origine spec appelé "green threads" mais les prochaines versions de Java abandonné en faveur de threads natifs
Dans la plupart des systèmes de poids Léger, les threads sont normales de threads que vous créez, avec l'aide de la bibliothèque, comme p_threads dans linux.
Alors que poids Lourds, dans certains systèmes, de se référer à un système de processus, avec sa propre mémoire virtuelle et une structure plus complexe, comme des informations sur le processus de performance/de la statistique.
Que c'est lié à la quantité de "contexte", associés à un fil, et par conséquent, la quantité de temps qu'il faut pour effectuer un "changement de contexte".
Poids lourd fils, (généralement kernel/au niveau de l'os threads) ont beaucoup de contexte (registres du matériel, les piles du noyau, etc). Donc, il faut beaucoup de temps pour basculer entre les threads. Poids lourd de threads peuvent aussi avoir des restrictions quant à eux, par exemple, sur certains Systèmes d'exploitation, les threads du noyau ne peut pas être remplacée, ce qui signifie qu'ils ne peuvent pas forcé d'être mis à l'écart jusqu'à ce qu'ils cèdent le contrôle.
Léger threads d'autre part (généralement, de l'espace utilisateur threads) ont beaucoup moins de contexte. (Ils sont essentiellement de partager le même matériel de contexte), ils ont seulement besoin de stocker le contexte de la pile de l'utilisateur, d'où le temps de prendre de commutateur léger threads est beaucoup plus courte.
Sur la plupart des Systèmes d'exploitation, tous les threads que vous créez en tant que programmeur dans l'espace utilisateur sera léger en comparaison de l'espace du noyau fils. Il n'y a pas de définition officielle de poids lourd et léger, il s'agit plus d'une comparaison entre les threads avec plus de contexte et de discussions avec moins de contexte. N'oubliez pas que chaque OS a son propre mise en œuvre de threads, et les lignes entre le lourd et le léger les threads ne sont pas nécessairement clairement définis. Dans certains langages de programmation et des cadres, lorsque vous créez un "Thread", vous pourriez même ne pas être d'obtenir un plein de thread, vous serez peut-être obtenir un peu d'abstraction qui cache le vrai nombre de threads en dessous.
[Des Os de permettre les discussions de partager l'espace d'adresse, de sorte que les threads qui sont normalement assez lourds, sont légèrement plus léger]
OriginalL'auteur Simon P Stevens
Standard Java threads sont raisonnablement lourds par rapport à Erlang threads qui sont très légers lieu de "spawn" de processus. Erlang montre distribuée de la machine à état fini.
Cependant, comme un exemple, http://kilim.malhar.net/ , une extension Java, basé sur la bibliothèque sur le modèle de l'Acteur de la simultanéité, propose une construction pour poids léger threads en java. Au lieu de Fil de la mise en œuvre de run(), un Kilim fil met en œuvre à partir du Kilim de la bibliothèque à l'aide d'une méthode execute (). Apparemment, il montre de Java runtime surpasse Erlang (au moins dans un environnement local autant que je sache). Java n'ont en fait de telles choses dans la langue d'origine spec appelé "green threads" mais les prochaines versions de Java abandonné en faveur de threads natifs
OriginalL'auteur John
Dans la plupart des systèmes de poids Léger, les threads sont normales de threads que vous créez, avec l'aide de la bibliothèque, comme p_threads dans linux.
Alors que poids Lourds, dans certains systèmes, de se référer à un système de processus, avec sa propre mémoire virtuelle et une structure plus complexe, comme des informations sur le processus de performance/de la statistique.
Pour plus d'informations:
http://www.computerworld.com/s/article/66405/Processes_and_Threads
http://msdn.microsoft.com/en-us/library/ms684841(SV.85).aspx
OriginalL'auteur Andres