how is APP_timer running? like a thread?

hi, i was just wondering whether the app_timer works like a function or like a thread.

e.g. lets say i got my mainloop

while(1) { start_timer(...); //DO SOMETHING }

and my timer function

void dummy_timer_handler(...) { //DO SOMETHING ELSE }

when the timer expires and the handler function is called, is my main loop paused? or does it run in parallel?