클라이언트 - 서버 응용 프로그램이 있고 서버가 각 클라이언트 요청을 병렬 처리해야합니다. 그래서 각 요청마다 스레드를 생성하기로 결정했습니다. 이렇게하는 것이 좋은 생각입니까? 내부 스레드는 클라이언트에게 응답을 보낼 것이므로 스레드를 닫는 것에 대해 걱정하지 않아도됩니다.여러 요청을 처리하기 위해 여러 스레드를 만드는 것이 좋습니다.
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;
}
그렇습니다. 다중 스레드 서버라고 부르지 만 일반적으로 연결을 잡아서 스레드가 클라이언트에 읽고 쓸 수있게합니다. –
여러 스레드를 만드는 것은 필요하지는 않더라도 괜찮습니다.하지만 각 요청에 대한 스레드를 만드는 것은 좋지 않습니다. 스레드 풀을 대신 사용하십시오. 쓰래드는 생성/폐기 비용이 비싸며 각각의 스택이 필요하기 때문에 많은 메모리가 필요합니다. 필요한만큼 많이 사용하지만 더 이상은 사용하지 마십시오. – Carcigenicate
C++ 11 이후로'std :: thread'를 사용할 수 있습니다. – Jarod42