two questions about thread

Bryan Olson fakeaddress at nowhere.org
Sat Jan 14 17:37:00 EST 2006


iclinux wrote:
> a.  how to exit the whole process in a thread?
> b. when thread doing a infinite loops, how to terminate the process?:

As others noted, the threading module offers Thread.setDaemon.
As the doc says: "The entire Python program exits when no active 
non-daemon threads are left."

Python starts your program with one (non-daemon) thread which
is sometimes called the "main" thread. I suggest creating all
other threads as daemons. The process will then exit when the
main thread exits.

If some other thread needs to end the process, it does so by
telling the main thread to exit. For example, we might leave
the main thread waiting at a lock (or semaphore), and exit if
the lock is ever released.


 >     it seems that the follow doesn't work, in my Windows XP:
 >             thread.start()
 >             thread.join()

Is that part of the questions above, or another issue?


-- 
--Bryan



More information about the Python-list mailing list