那么我的问题如下。我有一个脚本,我想在其中运行 3 个函数,每个函数在不同的时间间隔内运行。三者共享一个资源。我所做的是以下(其中 res 是共享资源):
import threading
import thread
lock = threading.Lock()
def f1(res) :
lock.acquire()
# do stuff
time = 10.0 # this one changes each time f1 runs
lock.release()
threading.Timer(time,f1).start()
def f2(res) :
lock.acquire()
# do stuff
time = 8.0 # this one changes each time f2 runs
lock.release()
threading.Timer(time,f2).start()
def f3(res) :
lock.acquire()
# do stuff
time = 8.0 # this one changes each time f3 runs
lock.release()
threading.Timer(time,f3).start()
thread.start_new_thread(f1(res))
thread.start_new_thread(f2(res))
thread.start_new_thread(f3(res))
当我执行代码时,只有第一个线程 (f1) 永远执行,实际上没有等待 Timer 中设置的时间。有人可以通过向我解释我做错了什么以及如何改正吗?
提前致谢。