Qu'est-ce que le filetage contexte?

Un contexte du thread se référer à un fil de la mémoire personnelle? Si oui, comment la mémoire est partagée entre plusieurs threads?

Je ne suis pas à la recherche pour les exemples de code - je comprends la synchronisation sur un niveau élevé, je suis juste confus au sujet de ce terme, et qui cherchent à avoir un aperçu sur ce qui se passe réellement derrière les scènes.

La raison que je pense/crois que chaque thread a une sorte de mémoire privée était à cause de la volatilité des mots clés dans Java et .NET, et comment les différents threads peuvent avoir des valeurs différentes pour la même primitive si elle n'est pas utilisée. Que toujours implicite privé de mémoire pour moi.

Que je ne savais pas que le terme est plus général, je suppose que je me demande comment commutation de contexte fonctionne en Java et C# spécifiquement.

  • Fournir un contexte où vous avez obtenu "contexte de thread" peut vous aider avec une réponse. Les Threads n'ont pas de "copie personnelle de mémoire" dans la .Net modèle de mémoire...
  • Alexei est tout à fait juste; sans dire où vous avez entendu parler de ce terme ou de comment il a été utilisé, il est difficile de dire. Par exemple, dans la Tâche de base de l'Asynchronie Modèle là est un objet appelé le filetage contexte et qui a un sens très précis lorsque vous parlez APPUYEZ sur la programmation. (Parce que la continuation d'une tâche est toujours planifiée pour s'exécuter dans un thread qui a eu le même "contexte" comme le fil qui attendait la tâche).
  • En particulier, êtes-vous poser des questions sur le sens de la CurrentContext propriété d'un Thread objet?
  • Peu importe si ce que vous entendez par "contexte", je suis complètement confus au sujet de ce que vous entendez par "portée" - champ d'application est une propriété des choses qui ont des noms et n'a de sens au moment de la compilation. Le champ d'application d'un champ, disons, est la zone de texte du programme dans lequel ce champ peut être désigné par son nom non qualifié. Quel est le rapport avec les threads? Aussi, je ne comprends pas ce que tu veux dire par "une copie personnelle de la mémoire". Ce n'est pas comment la mémoire fonctionne. Espaces d'adressage virtuel sont par processus, et non pas par thread.
  • Dans l'ensemble, maintenant, je ne suis même pas sûr que cette question est responsable. Pouvez-vous clarifier tout un tas de?
  • Oui, permettez-moi de modifier... je vais essayer d'approfondir.
  • Édité. J'espère avoir été plus clair. Je ne suis pas une question sur une propriété.
  • Le changement de contexte n'est pas un langage / framework fonctionnalité.. c'est un OS de la fonctionnalité.
  • Oh. Je pensais que la machine virtuelle manipuler, mais je suppose que vous avez raison. Les Threads natifs... je pense. Commençant à douter de tout 🙂
  • Les Threads sont à la fois indigène et gérés .NET. Les Threads qui sont gérés par le CLR ont beaucoup de restrictions imposées par l'environnement d'exécution, qui a réellement de threads natifs n'ont pas. Par exemple, un thread géré exception d'abandon n'est jamais jeté tout un thread géré l'exécution de code natif. Par exemple, le CLR garantit qu'aucune des conditions de course dans vérifiables code corrompus du CLR, structures de données, même si elles sont corrompre vos structures de données.