22
Июл
2021

Блокировка всех потоков другим потоком python

def func1():
    # some action
    for c in range(10):
        time.sleep(1)
        print('func1', c)
    print('end func1')

def func2():
    # some other action
    for i in range(5):
        time.sleep(1)
        print('func2', i)
    print('end func2')

def main():
    thread1 = threading.Thread(target=func1)
    thread2 = threading.Thread(target=func2)
    thread1.start()
    # time.sleep(10)
    thread2.start()

if __name__ == '__main__':
    main()

Требуется приостановить поток thread1 на время выполнения thread2, затем возобновить его в прежнем состоянии. Потоков типа thread1 несколько, нужно приостанавливать их все.

Пробовал threading.Lock(), но не совсем понял принцип действия данного метода.

Как я могу это реализовать? Заранее спасибо.

Источник: https://ru.stackoverflow.com/questions/1307737/%D0%91%D0%BB%D0%BE%D0%BA%D0%B8%D1%80%D0%BE%D0%B2%D0%BA%D0%B0-%D0%B2%D1%81%D0%B5%D1%85-%D0%BF%D0%BE%D1%82%D0%BE%D0%BA%D0%BE%D0%B2-%D0%B4%D1%80%D1%83%D0%B3%D0%B8%D0%BC-%D0%BF%D0%BE%D1%82%D0%BE%D0%BA%D0%BE%D0%BC-python

Тебе может это понравится...

Добавить комментарий