pthread线程使用小结
pthread线程使用小结 1.奇怪的线程参数初始化 for( i=0; i<n; i++) { // 会有什么问题? pthread_create(&tid,NULL, &thread_client_function, (void*)&i ); } 上面代码应该很容易明白,创建多个线程,传入序列号作为线程 id 。基实这里存在一个大 bug, 传递的参数会不成功!! 示例代码: view plain copy to clipboard print ? #include <stdio.h> #include <stdlib.h> #include <unistd.h> #include <pthread.h> #include <memory.h> void * thread_client_function( void * param ) { int client_id = *( int *)param; printf( "client id %d\n" , client_id); } int main( int argc, char * argv[] ) { int n = atol( argv[1] ); int i=0; pthread_t tid; for ( i=0; i<n; i++) { pthread_create(&tid,NULL, &thread_client