Ну, моя проблема в следующем. У меня есть сценарий, в котором я хочу запускать 3 функции каждый из них в другом интервале. Все трое имеют ресурс. То, что я сделал следующий (где Рез является общий ресурс):Расписание Python, повторяющее несколько потоков
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) выполняется всегда и на самом деле, не дожидаясь времени, установленного в Таймер. Может ли кто-нибудь помочь, объяснив мне, что я делаю неправильно, и как я могу исправить это?
Заранее спасибо.
Какую версию Python вы используете? Вам не нужны скобки после имен функций? – dwxw
Я использую 2.7. Что касается скобок, см. Обновления. Забыл что-то добавить. – gkaran89