Форум сайта python.su
Помогите с лабой…
Нужно сделать программу которая запускает 3 потока одновременно разных по скорости. Когда счетчик 3 потока (самого медленного) дойдет до 120 он должен его остановить, при этом 1 и 2 должны продолжаться пока не будут остановлены в ручную клавишей q. Все потоки так же могут быть остановлены в любой момент клавишей q. Не могу понять как это сделать, нашел программу которая просто останавливает потоки по очереди, когда значение их счетчика дойдет до 120, но не так как нужно
Офлайн
import threading import time import sys # Функция, выполняемая в каждом потоке def worker(counter, speed): while not stop_event.is_set(): counter[0] += 1 print(f"Thread {speed}: Counter = {counter[0]}") time.sleep(1 / speed) # Создаем счетчики и событие для остановки потоков counter1 = [0] counter2 = [0] counter3 = [0] stop_event = threading.Event() # Создаем и запускаем потоки thread1 = threading.Thread(target=worker, args=(counter1, 1)) thread2 = threading.Thread(target=worker, args=(counter2, 2)) thread3 = threading.Thread(target=worker, args=(counter3, 3)) thread1.start() thread2.start() thread3.start() # Ожидаем нажатия клавиши 'q' для остановки try: while True: if sys.stdin.read(1) == 'q': stop_event.set() break except KeyboardInterrupt: pass # Дожидаемся завершения потоков thread1.join() thread2.join() thread3.join() print("All threads have stopped.")
Офлайн
Каким образом третий поток остановится на 120? Где это фигурирует? Это решение из chatgpt? Извиняюсь, просто нет сейчас возможности проверить
Офлайн
neekyytahОн не остановится. Ты просто код не привёл никакой свой, потому что думал, что тут тебе филиал благородных девиц. Поэтому в ответ тебе то же самое отправили.
Каким образом третий поток остановится на 120? Где это фигурирует?
neekyytahПохоже, что так. Только эта нейросеть врёт и не краснеет обычно.
Это решение из chatgpt?
Офлайн
neekyytahЭто пример над которым вам надо было подумать и добавить 3 строчки
Каким образом третий поток остановится на 120? Где это фигурирует? Это решение из chatgpt? Извиняюсь, просто нет сейчас возможности проверить
Офлайн