Kent Johnson wrote:
>nephish wrote: > > >>Hey there, >>i have a simple question about getting a script to do >>two things at once. >>like this. >> >> >>for i in range(100): >> print i >> time.sleep(.2) >> if i == 15: >> os.system('python /home/me/ipupdate.py') >> >>print 'done' >> >>when i run this, it stops at 15 and runs the script called out in the >>os.system line. i know it is supposed to do that. But, how could i get a >>script to do this without stopping the count (or delaying it unill the >>script called exits) >> >> > >One way to get a script to do two things 'at once' is to use threads. Threads >are also a good way to introduce strange bugs into your program so you should >do some reading about them. I can't find a good introduction - anyone else >have a suggestion? Here is a brief one: >http://www.wellho.net/solutions/python-python-threads-a-first-example.html > >Here are a couple of articles, not really introductory: >http://linuxgazette.net/107/pai.html >http://www.devshed.com/c/a/Python/Basic-Threading-in-Python/ > >Anyway here is something to get you started, this version of your program >starts a new thread to do the os.system call, that way the main thread doesn't >block. > >import os, threading, time > >def doSomething(): > ''' This function will be called from the second thread ''' > os.system('''python -c "from time import sleep;sleep(2);print 'hello'"''') > >for i in range(30): > print i > time.sleep(.2) > if i == 10: > print 'Starting thread' > threading.Thread(target=doSomething).start() > >print 'done' > >Kent > >_______________________________________________ >Tutor maillist - [EMAIL PROTECTED] >http://mail.python.org/mailman/listinfo/tutor > > > thanks for all of the responses, yep, looks like threads is what i want to go with. got the docs you guys linked me to bookmarked. this is going to take a bit of research. thanks again for showing me where to start. shawn _______________________________________________ Tutor maillist - [EMAIL PROTECTED] http://mail.python.org/mailman/listinfo/tutor