Уведомления

Группа в Telegram: @pythonsu

#1 Дек. 1, 2013 15:46:17

YuraChudnick
Зарегистрирован: 2013-12-01
Сообщения: 1
Репутация: +  0  -
Профиль   Отправить e-mail  

цикл бесконечности

как сделать цикл что-бы этот код работал бесконечно?

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)

Офлайн

#2 Дек. 1, 2013 20:35:03

ajib6ept
От: От: От: От: От: От: От: От:
Зарегистрирован: 2013-08-04
Сообщения: 297
Репутация: +  26  -
Профиль   Отправить e-mail  

цикл бесконечности

while True:



_________________________
Python golden rule: Do not PEP 8 unto others; only PEP 8 thy self.
Don't let PEP 8 make you insanely intolerant of other people's code.

Офлайн

#3 Дек. 1, 2013 20:37:06

Budulianin
От:
Зарегистрирован: 2011-10-18
Сообщения: 1218
Репутация: +  33  -
Профиль   Отправить e-mail  

цикл бесконечности

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)

Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version