¿En qué hilo se ejecuta Runnable?

Quiero actualizar la interfaz de usuario cada 100 ms. Después de buscar en StackOverflow, encontré una solución usandoRunnable yHandler Me gusta esto

final Handler handler = new Handler();
Runnable runnable = new Runnable() {
    @Override
    public void run() {
        //update UI here

        handler.postDelayed(this, 100);
    }
};
runnable.run();

¡Funciona! Pero tengo algunas preguntas:

¿Qué hilo hace esto?Runnable run on? MainThread or another thread? Here is the docs about <code>postDelay</code> <a href="/imgs/pIVPS.png" rel="noreferrer"><img src="/imgs/pIVPS.png" alt="enter image description here"></a>

Handler se adjunta MainThread, por lo que esRunnable ejecutándose en MainThread?

SiRunnable se ejecuta en MainThread, ¿por qué necesitaHandler? Según mi conocimiento,Handler se usa para enviar mensajes entre dos hilos

Respuestas a la pregunta(3)

Su respuesta a la pregunta