Dúvida - THREADS

Estou trabalhando com TimerTask e preciso esclarecer uma dúvida…

Tenho o seguinte código:

Timer timer = new Timer();

//Leitura_A é a classe que extends TimerTask
Leitura_A timerTask1 = new Leitura_A();

//secounds é a variável que define o tempo de repetição da thread. No caso do meu programa 20 segundos
timer.scheduleAtFixedRate(timerTask1, 0 * 1000, secounds * 1000);

O método run() é chamado a cada 20 segundos, porém, se a tarefa exceder este tempo o que acontece?
1 - Ele executa novamente apenas qndo terminar a tarefa?
2 - Roda ao mesmo tempo e a mesma tarefa?

Não sei se consegui me expressar de forma correta. :shock:

Valeu a atenção!!

“Catch up” não é o molho e sim “conseguir acompanhar” ou coisa parecida.

Ou seja, digamos que você tenha uma tarefa que demorou 30 segundos para executar. A próxima tarefa não será executada em paralelo à tarefa que ainda não concluiu, mas em seguida a essa tal tarefa que ainda não terminou em 20 segundos.

Valeu Thingol!!