On 01/14/2015 08:09 AM, Ganesh Pal wrote:
Corrected Typos .
a) How to I prevent the execution of Print "EXECUTED SLEEP" after 4
seconds ? , current this is running in an infinite loop
Please on't top-post. If you want to comment on a message, insert your
comments after the portion of the message you'd like to comment on.
On Wed, Jan 14, 2015 at 6:37 PM, Ganesh Pal <ganesh1...@gmail.com> wrote:
Iam using Linux and Python 2.7 and playing with the threading.Timer module.
I had the below question on the same.
(a) How to I prevent the execution the "EXECUTED SLEEP" after 4
seconds ? , current this is running in an infinite loop
node-1# cat file_01.py
import threading
import time
def printit():
threading.Timer(2, printit).start()
print "EXECUTED SLEEP"
printit()
print "hi"
time.sleep(4)
print "hi"
time.sleep(5)
Output:
node-1# python file_01.py
EXECUTED SLEEP
hi
EXECUTED SLEEP
EXECUTED SLEEP
EXECUTED SLEEP
Do you want to fix the symptom, fix the problem, or finish a school
assignment? To do the first, make a global variable that contains the
time you want to stop making new threads, and conditionally test it
before calling threading.Timer
Something like
quit_time = timer.time() + 4
If you want to fix the problem, consider that creating a new thread for
each iteration is overkill, and consider how you might better solve it.
For example a single thread that loops through a range, and prints
once each time could easily do something a fixed number of times.
if you want to get the homework done, better reread the assignment. For
example, if you just want to print the string a fixed number of times
with a delay each time, you don't need threads at all. But the
assignment may have specified that you're stuck with using threads for
the purpose, and it may have even required that you use Timer somewhere.
Note that neither Timer nor sleep makes any promises about how
accurately it matches the requested time.
--
DaveA
--
https://mail.python.org/mailman/listinfo/python-list