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()完成后,当前线程函就结束了。 |