创建多个线程以处理多个请求是一个好练习吗?

is it good practice to create multiple threads to handle multiple request?

本文关键字:一个 练习 线程 处理 请求 创建      更新时间:2023-10-16

我有一个客户端服务器应用程序,我的服务器必须处理每个客户端请求。因此,我决定为每个请求创建线程。这样做是个好主意吗?内部线程我将向客户端发送响应,因此我不想关闭线程。

void MyThreadFunction()
{
    //Process request and send response to client
    //.....
    //.....
    return;
}
int main()
{
    //.....
    //.....
    while(true)
    {
        DWORD   dwThreadId;
        if(!receive(clientid, data)) //API to receive data from client
        break;
        CreateThread(NULL, 0, MyThreadFunction, NULL, 0, &dwThreadId);   
    }
    return 1;
}

这样做是个好主意吗?

不,这不是一个好主意。

由于Windows Vista and Server 2008,您可以使用(新的)ThreadPool API。

明确为每个传入请求创建一个新线程具有一定的开销,并将降低您的服务器性能。