关于线程创建的疑惑??????????
为说明主要问题,简单写出主要代码
-----------------------------服务器端
void* ThreadProc(void * Param);
int main(int argc, char* argv[])
{
socket()
bind()
listen()
while (1)
{
int client_socket = accept(..);
pthread_t thrd;
pthread_create(&thrd,NULL,ThreadProc,(void *)&client_socket)
}
}
void* ThreadProc(void * Param)
{
...
return NULL;
}
客户端不停的连接服务器端,服务器端创建一定数量的线程后,pthread_create()就失败。这个可能是因为系统资源有限。但是线程执行的
任务非常有限,几乎会立刻返回,如果等待很长的时间后,再次连接服务器端,此时线程仍然创建失败,这个时候系统的资源应该早已被释放了,为什么依然创失败呢?