Compartir tecnología

¿Qué tamaño tiene la pila de un hilo en Android? ¿Donde está establecido?

2024-07-11

한어Русский языкEnglishFrançaisIndonesianSanskrit日本語DeutschPortuguêsΕλληνικάespañolItalianoSuomalainenLatina

En Android, el tamaño de la pila de un subproceso puede variar según las diferentes versiones de Android y tipos de subprocesos (como el subproceso principal o el subproceso secundario). La siguiente es una respuesta detallada sobre el tamaño de una pila de subprocesos en Android y cómo configurarlo:

Tamaño de la pila de hilos

  1. Tamaño de la pila del hilo principal
    • De forma predeterminada, el tamaño de la pila del hilo principal de Android suele ser8 MB . Este es el espacio de pila inicial asignado por el sistema al hilo principal, que se utiliza para almacenar información como el proceso de llamada al método, variables locales y pilas de operandos.
  2. Tamaño de la pila de subprocesos secundarios
    • El tamaño de la pila del subproceso secundario es relativamente pequeño y el tamaño específico depende de la versión de Android.Por ejemplo, en Android 6.0/7.0, el tamaño de pila de un subproceso secundario (incluida el área GUARD) es aproximadamente1016 KB;En Android 8.0, el tamaño de la pila del subproceso secundario (incluida el área GUARD) es aproximadamente1008 KBEn Android 9.0 y superior, el tamaño de la pila del subproceso secundario (excluyendo el área GUARD) es aproximadamente;1008 KB, pero el tamaño total asignado por mmap (incluidos STACK y GUARD) es1012 KBo1016 KB

Establecer el tamaño de la pila de hilos

En Android, puede establecer el tamaño de pila del subproceso llamando a las funciones relevantes de la biblioteca de subprocesos POSIX (pthread). Estas funciones se suelen utilizar en código C o C, porque muchos de los mecanismos subyacentes de Android se basan en estos lenguajes.

  1. Función para establecer el tamaño de la pila de hilos
    • pthread_attr_setstacksize(pthread_attr_t *attr, size_t stacksize): Esta función se utiliza para configurar el objeto de atributo del hilo.attrtamaño de pila enstacksize
    • En usopthread_createAntes de crear un hilo, debes llamarpthread_attr_initInicialice el objeto de propiedades del hilo y luego usepthread_attr_setstacksizeEstablezca el tamaño de la pila y finalmente cree un hilo utilizando el objeto de propiedad establecido.
  2. Código de muestra
     

    c

    #include