【发布时间】:2010-12-01 00:37:10
【问题描述】:
如果我想通过 pthread_create() 将 char* 传递给各个线程,并且我希望它们独立工作,那么最简单的安全方法是什么?
我注意到如果我这样做会出现不稳定的行为
伪代码:
func1() { // part of a loop
Create var..
func2(var);
}
func2(char* var) { // spawn a thread
pthread_create(.....,&func3,(void*)var);
}
func3(void* var) {
work with the var // unstable behavior
}
不需要任何数据通信,线程只需获取 var,然后忽略程序的其余部分正在执行的操作。他们只是在他们得到的 var 上工作。
【问题讨论】:
标签: c variables thread-safety pthreads