Поток демона не будет препятствовать выходу приложения. Программа заканчивается, когда завершаются все потоки, не являющиеся демонами (включая основной поток).
В общем, если вы делаете что-то в фоновом режиме, вы можете установить поток как демон, чтобы вам не приходилось явно возвращать функцию этого потока перед тем, как приложение сможет выйти.
Например, если вы пишете приложение с графическим интерфейсом, и пользователь закрывает главное окно, программа должна выйти. Но если у вас есть не демонические потоки, это не так.
Из документов: http://docs.python.org/library/threading.html#threading.Thread.daemon
Его начальное значение наследуется от
создание потока; основная нить
не является потоком демона и, следовательно,
все темы, созданные в основной теме
по умолчанию daemon = False.
Вся программа Python завершается, когда
не осталось живых потоков, не являющихся демонами.