我正在使用gcc工作,我想知道以下是否可行:
我有一个函数(不是main而是aLocalFn),并在其中声明了一个局部变量。然后,我将此局部参数作为线程参数传递。这可行吗?还是有可能(取决于首先运行什么)在运行threadFunction之前会丢失aLocalVar,并且引用idxPtr指向无意义的值?
我有一个函数(不是main而是aLocalFn),并在其中声明了一个局部变量。然后,我将此局部参数作为线程参数传递。这可行吗?还是有可能(取决于首先运行什么)在运行threadFunction之前会丢失aLocalVar,并且引用idxPtr指向无意义的值?
int *threadFunction(void *idxPtr){
int rec_idx=(int) *idxPtr;
//work in the thread with this variabel rec_idx
}
int aLocalFn(){
int aLocalVar=returnsRecordIndex();
pthread_create(&thread_id,&attr_detached,threadFunction, &aLocalVar)!=0)
return 0;
}
感谢您的帮助。
pthread_create(&thread_id,NULL,threadFunction, &aLocalVar)
,并在pthread_create
之后的某个地方使用pthread_join
,这样做是否可以? - Rick