from threading import Timer
import time
timer_i = 1
def delayrun():
print "running..."
t = Timer(timer_i, delayrun)
t.start()
t = Timer(timer_i, delayrun)
t.start()
while True:
time.sleep(0.1)
print "main process..."
想问的是, delayrun 这样被嵌套调用,应该是会入栈的吧,但是实际运行时,观察线程数跟内存啊, cpu 之类的都一直稳定在某个值左右。
求解释下这里的结构。。
1
xiazi 2015-11-02 02:30:47 +08:00
delayrun 并没有被嵌套调用, 只是作为 Timer 的回调, 你这段代码的作用实际相当于一个 loop:
while 1: sleep(timer_i) print "running..." |
2
ryanking8215 2015-11-02 08:52:23 +08:00
delayrun 每次跑起定时器后就退出去了,没有嵌套
|
3
waklin 2015-11-02 10:35:10 +08:00
t.start()是异步的并不阻塞当前函数, t.start()完成后,当前线程函就结束了。
|