void function1(){
ThreadArg pArg;//他是个结构体指针
pArg->s_1 = 1;
pArg->s_2 = this;//关键就是这个,我是想把当前实例的指针让线程去做一些操作。
int ret = pthread_create( &m_id, NULL, function2, (void *)pArg);
}
void * function2( void * p){
//code....
//调用this的某些public
}
结果悲剧了。。。。。时而报错,时而不报错。。。每次报错还不一样。原来就是pArg的声明周期结束了,导致this指针有时可能被覆盖有时可能没有,所以一切都是不确定的。于是把这个线程参数放在堆里面了,就没事了。。。以后不能再这样马虎了!