Propriedade do daemon de encadeamento Python

Estou um pouco confuso sobre o que significa definir um thread para ser um daemon. A documentação diz o seguinte:

Um encadeamento pode ser sinalizado como um "encadeamento daemon". O significado desse sinalizador é que o programa Python inteiro é encerrado quando apenas os threads do daemon são deixados. O valor inicial é herdado do segmento de criação. O sinalizador pode ser definido através da propriedade daemon.

Não sei o que torna isso diferente de um tópico normal. Isso está dizendo que este programa nunca terminará?

def threadfunc():
    while True:
        time.sleep(1)

threading.Thread(target=threadfunc).start()

mesmo que o thread principal termine sua execução. Enquanto

def threadfunc():
    while True:
        time.sleep(1)

th = threading.Thread(target=threadfunc)
th.daemon = True
th.start()

terminará imediatamente?

Eu pergunto porque eu tenho uma situação em que no meu thread principal estou chamando sys.exit (), e o processo simplesmente trava e meus outros threads estão em execução, como posso ver no log. Isso tem algo a ver com sys.exit () sendo chamado com threads ativos?

questionAnswers(3)

yourAnswerToTheQuestion