[eside-ghost] Pthreads
Jorge Martinez de Salinas
jorge.marsal en gmail.com
Mar Sep 15 11:06:41 CEST 2009
Todos los threads comparten la zona de memoria de datos, la de texto y
la de heap, pero tienen su propio stack. A medida que vas creando
threads se van creando sus propios stacks y se consume memoria. En
este enlace tienes algo de información sobre pthreads, igual te sirve.
https://computing.llnl.gov/tutorials/pthreads/
On Sep 15, 2009, at 10:58 AM, Iker Perez de Albeniz - Txupete - wrote:
> Aupa, tengo una duda..
>
> Estoy haciendo un pequeños servidorcillo con pthreads
>
> basicamente tengo esto:
>
> ***************************************************************************
> int th_counter = 0;
> pthread_t thread_id[100];
>
> for(;;) {
>
>
>
> sin_size = sizeof their_addr;
> new_fd = accept(sockfd, (struct sockaddr *)&their_addr,
> &sin_size);
>
>
>
> if (new_fd == -1) {
> perror("accept");
> continue;
> }
>
> inet_ntop(their_addr.ss_family, get_in_addr((struct sockaddr *)
> &their_addr), s, sizeof s);
>
> mainData *data = new mainData
> (new_fd,&cfg,savepath,commconfiguration,cleans);
>
> pthread_create(&thread_id[th_counter],NULL,analyze_spam,
> (void*) data);
>
>
> th_counter++;
> if(th_counter == 100){
> th_counter = 0;
> }
> // parent doesn't need this
> }
>
> ***************************************************************************************
>
> No hago pthread_join porque nokieroesperar a que termine para
> aceptar otra conexion y lanzar otro thread.
>
> El tema es que he visto que por cada pthread que lanzo tengo un
> consumo de memoria. Alguien sabe porque es esto y si hay laguna
> forma de evitarlo. he intentado usando la funcion pthread_detach()
> pero me da segmentation faults.. alguna idea?
>
> Gracias.
> Un saludo.
>
> _______________________________________________
> eside-ghost mailing list
> eside-ghost en listas.deusto.es
> https://listas.deusto.es/mailman/listinfo/eside-ghost
--
Jorge Martínez de Salinas
http://www.jorgemarsal.com/blog/
Más información sobre la lista de distribución eside-ghost