My question, which I could not easily answer by reading the source is: What happens when the main thread ends? Do all threads run until they are eady too, or are they just killed away? And if they are killed, are they just removed, or do they all get an exception for cleanup?
If you're talking about the thread module, they are killed without being given notice. The threading module however waits for all non-daemon threads, using the atexit mechanism build on top of sys.exit.
--Guido van Rossum (home page: http://www.python.org/%7Eguido/)