Форум сайта python.su
0
как сделать цикл что-бы этот код работал бесконечно?
import threading import random import time S0=threading.Semaphore(0) S1=threading.Semaphore(0) S2=threading.Semaphore(0) S3=threading.Semaphore(0) S4=threading.Semaphore(0) S5=threading.Semaphore(0) def FuncT0(): while True: s=1 S4.release() time.sleep(5) S5.acquire() print "Все Ок!" def FuncT1(): global t, z, x S4.acquire() print "Гості: 1 - з сиропом, 2 - з молоком, 3 - морозивом." t = random.randrange(1,3) z = random.randrange(2,4) if t==z: t=1 z=3 print "Господар дає:" if t==1: print "сироп," else: print "молоко," if z==3: print "морозиво." else: print "молоко." x = t + z if x==5: S0.release() if x==4: S1.release() if x==3: S2.release() def FuncT2(): global x S0.acquire() time.sleep(2) print "Перший гість зробив коктель!" S5.release() def FuncT3(): global x S1.acquire() time.sleep(2) print "Другий гість зробив коктель!" S5.release() def FuncT4(): global x S2.acquire() time.sleep(2) print "Третій гість зробив коктель!" S5.release() T0=threading.Thread(target=FuncT0) T1=threading.Thread(target=FuncT1) T2=threading.Thread(target=FuncT2) T3=threading.Thread(target=FuncT3) T4=threading.Thread(target=FuncT4) T0.start() T1.start() T2.start() T3.start() T4.start() T0.join() T1.join() T2.join() T3.join() T4.join()
Отредактировано FishHook (Дек. 1, 2013 16:00:07)
Офлайн
26
while True:
Офлайн
33
YuraChudnick
T0=threading.Thread(target=FuncT0)
T1=threading.Thread(target=FuncT1)
T2=threading.Thread(target=FuncT2)
T3=threading.Thread(target=FuncT3)
T4=threading.Thread(target=FuncT4)
T0.start()
T1.start()
T2.start()
T3.start()
T4.start()
T0.join()
T1.join()
T2.join()
T3.join()
T4.join()
functions = [FuncT0, FuncT1, FuncT2, FuncT3, FuncT4] for func in functions: worker = threading.Thread(target=func) worker.setDaemon(True) #если каждый поток будет работать бесконечно (while True) worker.start()
Отредактировано Budulianin (Дек. 1, 2013 20:55:34)
Офлайн