pthread_create no servidor http multithread
Aug 22 2020
Suponha que o servidor trate os clientes da seguinte maneira:
void* handle_request(void* client_sck);
int client_sck;
while((client_sck = accept(...)) != -1)
{
/*
.
.
.
*/
pthread_create(&thr, 0, handle_request, (void*)&client_sck);
}
É seguro dizer que, em cada iteração do loop, o último argumento passado para pthread_createserá compartilhado entre as threads? Ou seja, na segunda vez, o client_sck ainda tem o mesmo endereço da iteração anterior.
Respostas
1 VolkerStolz Aug 22 2020 at 15:04
Sim. Isso significa que o próximo accept() pode sobrescrever o valor antes que o thread anterior tenha a chance de buscar o valor, portanto, não é um bom design.
O que significa um erro “Não é possível encontrar o símbolo” ou “Não é possível resolver o símbolo”?
Christopher Nolan uma vez se arrependeu de ter lido o 'roteiro de Pulp Fiction' de Quentin Tarantino