Федеральное государственное бюджетное образовательное учреждение высшего образования «Уфимский университет науки и технологий» по дисциплине «Операционные системы» Лабораторная работа № 2 ПОТОКИ Выполнил: Алимов Н.М. ПИ-231б Проверил: Веденяпин. И. Э. Уфа – 2023 Практическая часть Задание Написать программу, запускающую три дочерних потока. Каждый поток увеличивает (начиная с 0) значение счетчика с разной скоростью (использовать функцию sleep). При нажатии на клавишу ‘q’ закрыть все потоки и завершить выполнение программы. Вариант №1 Вывести на экран номер потока, значение счетчика которого первым достигнет значения 50. Программа: import threading import time import sys stop_event = threading.Event() def increment_counter(thread_num, increment): counter = 0 while not stop_event.is_set(): counter += increment print("Поток", thread_num, "счетчик =", counter) if counter >= 50: print("Поток", thread_num, "достиг значения 50") stop_event.set() sys.exit() time.sleep(1 / increment) print("Поток", thread_num, "завершен - ", counter) if __name__ == "__main__": threads = [] for i in range(1, 4): increment = i thread = threading.Thread(target=increment_counter, args=(i, increment)) thread.start() threads.append(thread) while True: if 'q' in input(): for thread in threads: stop_event.set() thread.join() sys.exit()