Question

Y at-il une bonne manière agnostique plate-forme pour mettre en œuvre une variable qui est locale à la fois un fil et une instance de classe, à savoir si vous avez des fils T et moi instances de classe, vous avez des cas TxI de cette variable? J'utilise le langage de programmation D, la version 2, mais une bonne réponse agnostique langue serait également utile.

Voici quelques contraintes:

  1. ne doit jamais exiger la synchronisation. Cela exclut ayant un filetage de mappage de table de hachage ID de référence variable en tant que variable membre.
  2. Ne doit pas garder les références qui devraient être autour des déchets collectés. Cela exclut avoir une table de hachage thread local, statique indexé par instance de classe.
  3. Initialisation devrait être paresseux pour l'efficacité. Si un thread accède à jamais la variable une instance donnée, alors il ne doit jamais être créé.
Était-ce utile?

La solution

  

ne doit pas garder les références qui devraient être autour des déchets collectés. Cela exclut avoir une table de hachage thread local, statique indexé par instance de classe.

Utilisez une table de hachage avec les touches faibles référencées. N'empêchera pas la collecte des ordures, et baissera les informations de la table de hachage lorsque la clé (l'instance de classe) sont collectées.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top