当前位置: 技术问答>linux和unix
c语言多线程实现并行服务器遇到点小问题,求解!
来源: 互联网 发布时间:2017-02-01
本文导语: 请先看下我的部分代码: int new_fd; int i; pthread_t id[20]; while(1) { new_fd = accept(new_fd,...,...); //此处省略 pthread_create(id[i++],NULL,(void *)func,NULL); //问题就出在这里,我执行的时候无法创建线程,提示...
请先看下我的部分代码:
int new_fd;
int i;
pthread_t id[20];
while(1)
{
new_fd = accept(new_fd,...,...); //此处省略
pthread_create(id[i++],NULL,(void *)func,NULL); //问题就出在这里,我执行的时候无法创建线程,提示了段错误,我在想是不是这个 id[i++] 这句出现了问题,想问问为什么呢?
}
int new_fd;
int i;
pthread_t id[20];
while(1)
{
new_fd = accept(new_fd,...,...); //此处省略
pthread_create(id[i++],NULL,(void *)func,NULL); //问题就出在这里,我执行的时候无法创建线程,提示了段错误,我在想是不是这个 id[i++] 这句出现了问题,想问问为什么呢?
}
|
....
检查有没有越界。。。
i有没有初始化
检查有没有越界。。。
i有没有初始化
|
&id[i++]
传地址
传地址
|
&id[i++]
传地址
传地址
|
int pthread_create(pthread_t*restrict tidp,const pthread_attr_t *restrict_attr,void*(*start_rtn)(void*),void *restrict arg);
-----------------------------------------------------------------------------------------------
The first argument is a pointer
-----------------------------------------------------------------------------------------------
The first argument is a pointer