【坑】一个线程参数引起的血案

void function1(){this

  ThreadArg pArg;//他是个结构体指针线程

  pArg->s_1 = 1;指针

  pArg->s_2 = this;//关键就是这个,我是想把当前实例的指针让线程去作一些操做。code

  int ret = pthread_create( &m_id, NULL, function2, (void *)pArg);io

}function

void * function2( void * p){thread

//code....co

//调用this的某些public结构体

}参数

结果悲剧了。。。。。时而报错,时而不报错。。。每次报错还不同。原来就是pArg的声明周期结束了,致使this指针有时可能被覆盖有时可能没有,因此一切都是不肯定的。因而把这个线程参数放在堆里面了,就没事了。。。之后不能再这样马虎了!

相关文章
相关标签/搜索