Question

J'utilise des fils de l'ECA et ont besoin chaque thread d'avoir son propre membre int. Est-ce possible?

Était-ce utile?

La solution

ACE appelle ce « fil de stockage spécifique ». Check this out: ACE_TSS . C'est à peu près tout ce que je sais à ce sujet, désolé ne peut pas être plus d'aide.

La page Wikipedia pour stockage local des threads dit il y a un moyen pthreads faire aussi.

Autres conseils

Sa plate-forme spécifique. Windows, par exemple, vous devez utiliser __declspec( thread ) . Le compilateur exploitera le TLS API (TlsAlloc, TlsFree et amis), et sur Win32 vous ne devriez toujours utilisez des services en français (Fiber local Storage) au lieu de TLS, mais l'API TLS vous redirige silencieusement aux services en français de toute façon sur une version Win32 moderne.

Oui. Vous pouvez utiliser le modèle de ACS_TSS<type>, qui est conçu pour « fil de stockage spécifique ». (Ex: variables locales thread)

Pour plus de détails, voir les docs sur ACE_TSS.

GCC prend en charge directement TLS pour certaines cibles . Vous pouvez utiliser le mot-clé spécifique __thread-GCC pour définir des variables locales de thread (doit être statique ou global).

libace a lui-même des choses de thread local intégré, vous pouvez consulter la page documentation et regardez le exemple de code

Il n'y a pas moyen d'avoir ACE_TSS définir la valeur initiale pour tous les sujets; vous pouvez facilement définir la valeur initiale juste après l'entrée dans la fonction thread bien.

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