[EMAIL PROTECTED] <[EMAIL PROTECTED]> wrote: > Yes, someone can, and that someone might as well be you. > How long does it take to create and clean up 100 trivial > processes on your system? How about 100 threads? What > portion of your user waiting time is that?
Here is test prog... The results are on my 2.6GHz P4 linux system Forking 1000 loops, best of 3: 546 usec per loop Threading 10000 loops, best of 3: 199 usec per loop Indicating that starting up and tearing down new threads is 2.5 times quicker than starting new processes under python. This is probably irrelevant in the real world though! """ Time threads vs fork """ import os import timeit import threading def do_child_stuff(): """Trivial function for children to run""" # print "hello from child" pass def fork_test(): """Test forking""" pid = os.fork() if pid == 0: # child do_child_stuff() os._exit(0) # parent - wait for child to finish os.waitpid(pid, os.P_WAIT) def thread_test(): """Test threading""" t = threading.Thread(target=do_child_stuff) t.start() # wait for child to finish t.join() def main(): print "Forking" timeit.main(["-s", "from __main__ import fork_test", "fork_test()"]) print "Threading" timeit.main(["-s", "from __main__ import thread_test", "thread_test()"]) if __name__ == "__main__": main() -- Nick Craig-Wood <[EMAIL PROTECTED]> -- http://www.craig-wood.com/nick -- http://mail.python.org/mailman/listinfo/python-list