【发布时间】:2021-09-22 13:43:29
【问题描述】:
我正在测试计时器功能,我得到了一些奇怪的打印。我关心的是这是否是代码实际执行的方式,即函数再次运行,而前一次迭代没有完成,因此它可能会弄乱代码。还是只是打印问题,代码本身没问题?
import time
import threading
from TestTimerObject import TimerObject
def TestTimers():
timers = []
for x in range(10):
new_timer_obj = TimerObject("Timer" + str(x))
new_timer_obj.timer = threading.Timer(10.0, TimerFinished, [x])
new_timer_obj.timer.start()
def TimerFinished(param):
print("Finished ", param)
TestTimers()
打印:
Finished 0
Finished 3
Finished 1
Finished 2
Finished Finished 4
Finished 5Finished 8
Finished 9
6
Finished 7
希望我的问题不会令人困惑。简单来说,为什么我要打印这个烂摊子而不是这样的东西(顺序无关紧要)
Finished 0
Finished 3
Finished 1
Finished 2
Finished 4
Finished 5
Finished 8
Finished 9
Finished 6
Finished 7
【问题讨论】:
-
您需要使您的打印“线程安全”。这可能会有所帮助:stackoverflow.com/questions/40356200/…
标签: python