NDK / JNI: identificando el hilo actual

¿En un método nativo de JNI, hay una manera de saber el ID del hilo actual sin la llamada de Java detrás? El almacenamiento local de subprocesos también funcionaría.

EDIT: pthread.h está presente en la carpeta NDK include … ¿Alguien sabe si los subprocesos Java corresponden a los POSIX en la implementación NDK?

¿Qué ID le interesa? Un dump de hilo de Dalvik incluye lo siguiente:

  "Main" prio = 5 tid = 1 TIMED_WAIT
   |  Group = "main" sCount = 1 dsCount = 0 obj = 0x40017730 self = 0x12798
   |  SysTid = 3167 nice = 0 sched = 0/0 cgrp = dirección predeterminada = -2146114456
   |  Schedstat = (358850000 275073000 869) utm = 23 stm = 12 core = 0 

"Tid" es el ID de la máquina virtual. "Handle" es el pthread_t. "SysTid" es el resultado de gettid () (el ID de proceso de Linux).

No se muestra el ID de subproceso libcore (obtenido de java.lang.Thread.getId ()).

(Usted puede obtener lo anterior con "kill shell 3 de adb." La salida va a un archivo común, definido por la propiedad dalvik.vm.stack-trace-file – usualmente /data/anr/traces.txt, pero Varía según el dispositivo.)

EDIT: Cada thread de Dalvik VM es un pthread de Linux. La syscall gettid () le dará una ID única para cada subproceso. Además, puede agregar información de identificación a TLS en java.lang.Thread o pthread_key.

  • Los anuncios de Android ralentizan mucho el rendimiento
  • ¿Una clase anónima mantiene referencias externas vivas?
  • Cómo suspender y reanudar los hilos en android?
  • Objeto no bloqueado por subproceso antes de notificar () en onPostExecute
  • La mejor manera de enviar solicitudes HTTP GET ansynchronously en Android?
  • diferencia runable androide
  • ¿Cómo ejecutar la solicitud web en su propio hilo?
  • ¿Se asignan automáticamente nuevos subprocesos a un núcleo de CPU diferente en Java?
  • Simple Thread Management - Java - Android
  • ¿Cuál es la mejor manera de depurar los problemas de RxJava con mensajes no recibidos?
  • OnSaveInstanceState / onPause - espera hasta que el estado se salve por completo antes de permitir que se procese el proceso
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.