Sí, esa es una manera, la de preguntar si tal hilo sigue funcionando.
Otras... creo que son más alambicadas (semáforos, banderas...)
El progreso (con los puntos), lo tienes sencillo:
Using perl Syntax Highlighting
$|++; # quitamos el caché de salida
while ($thread->is_running) {
print '.'; # ¡dot!
sleep 1; # esperamos 1 s
}
print "\n";
Coloreado en 0.002 segundos, usando
GeSHi 1.0.8.4
Es necesario modificar $| para que la salida de los puntos sea inmediata, uno a uno. Si no, saldrían todos de golpe. Y el sleep() es necesario para que el bucle no se lleve toda la carga de la CPU.