GNU/Linux >> Tutoriales Linux >  >> Linux

¿Los hilos tienen un montón distinto?

De forma predeterminada, C solo tiene un montón.

Dicho esto, algunos asignadores que son conscientes de subprocesos dividirán el montón para que cada subproceso tenga su propia área desde la cual asignar. La idea es que esto debería mejorar la escala del montón.

Un ejemplo de tal montón es Hoard.


No. Todos los subprocesos comparten un montón común.

Cada subproceso tiene una pila privada, de la que puede agregar y eliminar elementos rápidamente. Esto hace que la memoria basada en pila sea rápida, pero si usa demasiada memoria de pila, como ocurre en la recursividad infinita, obtendrá un desbordamiento de pila.

Dado que todos los subprocesos comparten el mismo montón, el acceso al asignador/desasignador debe estar sincronizado. Hay varios métodos y bibliotecas para evitar la contención del asignador.

Algunos lenguajes le permiten crear grupos privados de memoria o montones individuales, que puede asignar a un solo subproceso.


Linux
  1. ¿Tiene Curl un tiempo de espera?

  2. Introducción a los subprocesos de Linux - Parte I

  3. Cómo crear subprocesos en Linux (con un programa de ejemplo en C)

  4. ¿Errno es seguro para subprocesos?

  5. Cómo imprimir pthread_t

Subprocesos preventivos Vs subprocesos no preventivos

Id. de subproceso frente a identificador de subproceso

Acceder al subproceso local desde otro subproceso

Manejo de señales con múltiples hilos en Linux

¿Python tiene sincronización?

¿Es fopen () una función segura para subprocesos en Linux?