【发布时间】:2011-01-26 02:52:51
【问题描述】:
我正在使用 ACE 线程,并且需要每个线程都有自己的 int 成员。 这可能吗?
【问题讨论】:
-
出于好奇,您真的需要使用 TSS 吗?您是否可以简单地在线程堆栈上声明变量,或者您是否正在寻找某种方法来阻止其他线程访问您的变量?如果是后者,为什么不使用锁呢?有些人认为 TSS 主要是遗留接口的拐杖(例如,使 errno 线程安全),并且锁是更好的方法。我不提倡其中一种。 YMMV。
-
我认为TSS实际上是这种情况下最优雅的解决方案。我有 n 个线程,每个线程都应该有自己的变量(具有自己的值)。
-
您提到希望每个线程都有自己的“成员”。这表明您正在使用类来表示您的线程。如果是这样,那么只需给类一个普通的成员变量。每个线程都有自己的类实例,因此它也有自己独立的成员变量。
标签: c++ multithreading thread-local ace