当前位置: 技术问答>linux和unix
基于LINUX 线程的并发通讯服务器
来源: 互联网 发布时间:2016-06-17
本文导语: 想做一个实验,利用linux线程来实现socket并发服务器的功能,请问如何实现? 我现在的困难时,接收到一个socket请求的时候,需要pthread_create一个线程,但是必须等待这个线程执行完(pthread_join)才可以产生下一个线程...
想做一个实验,利用linux线程来实现socket并发服务器的功能,请问如何实现?
我现在的困难时,接收到一个socket请求的时候,需要pthread_create一个线程,但是必须等待这个线程执行完(pthread_join)才可以产生下一个线程,否则上一个线程可能执行不完就退出了。请问如何实现?
大概的流程如下:
for(;;)
{
socekt_fd = accept(sock_fd ....)
// recive a request
pthread_create(&pid, NULL, (void*)req_processor, NULL....)
pthread_join(pid)
}
void *req_processsor()
{
//
processing....()...
}
如果我不用pthread_jon(),那么线程函数req_processor()就没有执行完就退出了。如果等待它,就不能并发了。请问如何解决?
我现在的困难时,接收到一个socket请求的时候,需要pthread_create一个线程,但是必须等待这个线程执行完(pthread_join)才可以产生下一个线程,否则上一个线程可能执行不完就退出了。请问如何实现?
大概的流程如下:
for(;;)
{
socekt_fd = accept(sock_fd ....)
// recive a request
pthread_create(&pid, NULL, (void*)req_processor, NULL....)
pthread_join(pid)
}
void *req_processsor()
{
//
processing....()...
}
如果我不用pthread_jon(),那么线程函数req_processor()就没有执行完就退出了。如果等待它,就不能并发了。请问如何解决?
|
up 一下