【发布时间】:2011-11-15 07:14:30
【问题描述】:
我在一个函数中声明了一些局部变量,如下所示:
void* thread_function (void* parameter)
{
struct parameter * thread_data = (struct parameter *)parameter;
char buffer[20];
int temp;
}
如果我创建了两个线程,那么如果缓冲区和临时更新在一个线程中,那么它会影响其他线程吗?
我的意思是如果有两个线程,那么所有局部变量都会有两个副本吗?
编辑:那么在这种情况下我需要使用线程特定的数据。?我的意思是 pthread_setspecific 和所有这些东西
【问题讨论】:
-
使用
pthread_setspecific和 Co,您可以获得可以由同一线程中的所有函数全局访问的存储空间,而无需将其作为参数传递给这些函数。
标签: c linux multithreading