pthread_create di server http multithreaded
Aug 22 2020
Misalkan server menangani klien dengan cara berikut:
void* handle_request(void* client_sck);
int client_sck;
while((client_sck = accept(...)) != -1)
{
/*
.
.
.
*/
pthread_create(&thr, 0, handle_request, (void*)&client_sck);
}
Apakah aman untuk mengatakan bahwa, pada setiap iterasi pengulangan, argumen terakhir yang diteruskan ke pthread_createakan dibagikan di antara utas? Artinya untuk kedua kalinya, client_sck masih memiliki alamat yang sama dari iterasi sebelumnya.
Jawaban
1 VolkerStolz Aug 22 2020 at 15:04
Iya. Ini berarti bahwa selanjutnya accept() dapat menimpa nilai sebelum utas sebelumnya memiliki kesempatan untuk mengambil nilai, jadi ini bukan desain yang baik.
Selalu Menjadi Ancaman: Mengapa Orang Berkulit Coklat dan Hitam Tidak Bisa Nyaman di Amerika Serikat
Jana Duggar: Semua yang Dia Katakan Tentang Cinta dan Jendela 5 Tahunnya untuk Menemukan 'Yang Satu'