【发布时间】:2012-11-07 00:33:17
【问题描述】:
第一种方法:
import threading
import time
def keepalive():
while True:
print 'Alive.'
time.sleep(200)
threading.Thread(target=keepalive).start()
第二种方法:
import threading
def keepalive():
print 'Alive.'
threading.Timer(200, keepalive).start()
threading.Timer(200, keepalive).start()
哪种方法占用更多内存?而在第二种方法中,线程被激活后是否结束?或者它是否保留在内存中并开始一个新线程? (多线程)
【问题讨论】:
-
我把标题稍微通用了一些——对于这种特定的“基准”或“性能问题”,一个很好的初步答案是对其进行分析;显示“意外结果”的个人资料是更好问题的起点。
-
你试过运行它吗?您可以使用顶部/活动监视器/ProgMan/等。查看内存使用情况和线程数,或者您可以在内部进行(例如,
threading.active_count()),这可能比您提出合理问题的时间要短。 -
lop 和 sleep() 调用有什么问题?为什么每次都开始一个新的线程?
标签: python multithreading memory timer python-2.7