मल्टीथ्रेडेड http सर्वर में pthread_create
Aug 22 2020
मान लीजिए कि सर्वर निम्नलिखित तरीके से ग्राहकों को संभालता है:
void* handle_request(void* client_sck);
int client_sck;
while((client_sck = accept(...)) != -1)
{
/*
.
.
.
*/
pthread_create(&thr, 0, handle_request, (void*)&client_sck);
}
क्या यह कहना सुरक्षित है कि, प्रत्येक लूप पुनरावृत्ति पर, अंतिम तर्क को pthread_createधागे के बीच साझा किया जाएगा? मतलब दूसरी बार के आसपास, client_sck अभी भी पिछले पुनरावृत्ति से एक ही पता है।
जवाब
1 VolkerStolz Aug 22 2020 at 15:04
हाँ। इसका मतलब यह है कि अगले accept() मूल्य को अधिलेखित कर सकते हैं इससे पहले कि पिछले धागे को मूल्य प्राप्त करने का मौका था, इसलिए यह एक अच्छा डिज़ाइन नहीं है।