- 36
- 0
- 约1.77万字
- 约 72页
- 2017-07-21 发布于湖北
- 举报
通过指针传递参数 这种方法首先将要传递的数据转换成通用指针类型,然后传递给新线程,新线程再将其还原成原数据类型: void *start_routine(void *arg); int main(void) { int connfd; … pthread_create(tid, NULL, start_routine, (void *)connfd); … } void *start_routine(void *arg) { int connfd; connfd =(int ) arg; … } 这种方法虽然简单,但却有很大的局限性。如:要求arg的类型必须能被正确地转换成通用指针类型,而且可传递的参数只有一个。 传递参数的普通方法 由于线程创建函数只允许传递一个参数,因此当需要传递多个数据时,应首先将这些数据封装在一个结构中。 void *start_routine(void *arg); struct ARG { int connfd; int other; } int main() { struct ARG *arg; … While(1){ if((connfd = accept(sockfd,NULL,NULL))== -1){ … }
原创力文档

文档评论(0)