我正在使用ACE线程,并且需要每个线程都有自己的int成员。 这可能吗?
答案 0 :(得分:2)
ACE称之为“特定于线程的存储”。看看这个:ACE_TSS。这就是我所知道的全部内容,抱歉无法提供更多帮助。
thread-local storage的维基百科页面说有一种pthreads方法可以做到这一点。
答案 1 :(得分:0)
其特定平台。例如,您应该使用__declspec( thread )
。编译器将利用TLS API(TlsAlloc,TlsFree和朋友),在Win32上你不应该总是使用FLS(光纤本地存储)而不是TLS,但是TLS API无论如何都会在任何现代Win32上静默地重定向到FLS版本
答案 2 :(得分:0)
是。您可以使用专为“线程特定存储”设计的ACS_TSS<type>
模板(即:线程局部变量)。
有关详细信息,请参阅docs on ACE_TSS。
答案 3 :(得分:0)
GCC直接支持TLS for some targets。您可以使用特定于GCC的__thread
关键字来定义线程局部变量(必须是静态或全局变量)。
libACE本身内置了线程本地内容,您可以查看documentation并查看example code。
答案 4 :(得分:0)
没有办法让ACE_TSS为所有线程设置初始值;您可以在线程函数中输入后轻松设置初始值。