Добрый день! Я правильно понимаю, что вы хотите пример многозадачности, где одна задача выполняется в течение одного часа, а другая задача выполняется в течение двух часов, независимо друг от друга? Я могу дать пример использования многопоточности в такой задаче. Допустим, у нас есть приложение, которое помогает управлять системой полива двух растений. Первое растение должно поливаться каждый час в течение 10 минут, а второе растение должно поливаться каждые два часа на 20 минут. Мы можем запустить два потока, каждый из которых управляет поливом соответствующего растения. В первом потоке мы можем использовать sleep (10 минут) после того, как произойдет полив, а затем повторить эту операцию бесконечное количество раз. Во втором потоке мы также можем использовать sleep (2 часа) для ожидания следующего полива огорода, а затем выполнить полив на 20 минут и повторять этот процесс бесконечное количество раз. Таким образом, в обоих потоках мы можем синхронизировать задачи и обеспечить их независимое выполнение. Многозадачность позволяет улучшить производительность и использовать ресурсы более эффективно. Конечно, вот пример на Python: import threading import time # Создаем класс овощного сада class VegetableGarden: def init (self, vegetable, watering_interval, watering_time): self.vegetable = vegetable self.watering_interval = watering_interval self.watering_time = watering_time # Метод полива овощей def watering(self): while True: print(f"{self.vegetable} is being watered") time.sleep(self.watering_time) # время полива овощей print(f"{self.vegetable} has been watered") time.sleep(self.watering_interval) # время между поливами овощей # Создаем два потока: один для первого овоща, а второй - для второго овоща thread1 = threading.Thread(target=VegetableGarden("Tomatoes", 60 * 60, 10 * 60).watering) thread2 = threading.Thread(target=VegetableGarden("Cucumbers", 2 * 60 * 60, 20 * 60).watering) # Запускаем потоки thread1.start() thread2.start() # Ждем завершения потоков thread1.join() thread2.join() В этом примере мы также используем многопоточность, чтобы реализовать систему полива овощей. У каждого растения есть своя частота полива и время полива. Мы создаем два потока, каждый из которых управляет соответствующим растением. VegetableGarden - это класс, представляющий овощной сад. У каждого экземпляра класса есть свой вид растения (vegetable), время между поливами (watering_interval) и время полива (watering_time). Метод watering в бесконечном цикле выполняет полив растения с использованием sleep для времени полива и времени между поливами. thread1 и thread2 - это объекты потоков, которые мы создали с помощью Thread. Мы вызываем метод start для запуска обоих потоков, а затем используем метод join, чтобы ждать завершения потоков. Этот пример на Python - это еще один способ реализации многозадачности для решения задачи включения/выключения в конкретное время.
Комментарии: 9
Charleyebot
Я хочу разобраться как на одной двухканальной реле сделать задачи на протяжении всего времени, а именно: 12 часов работы/12 часов выключения света на одном реле, а на другом реле параллельно проветривание каждые 3 часа по 10 минут. Последовательно у меня получается, но тут одно надо выключать что бы другое работало
Mezzo
Реле времени купи. Проще и быстрее
Charleyebot
https://aliexpress.ru/item/33014830389.html?sku_id=12000020940167275&spm=a2g2w.productlist.search_results.8.31c84aa6o0W2vU правильно я понимаю?
Mezzo
Читай описание, подходит ли тебе. Есть такие, которые на неделю можно программировать
Charleyebot
Спасибо, но по прежнему не особо понимаю. Буду искать ещё может на англоязычных форумах. Гайды есть по подключению конечно, но там одно всего подключают на двухканальной)
Bulochka
многофазное реле времени, в идеале
Charleyebot
Выглядят как реле для ардуино?
Mezzo
Выглядят как готовое устройство
Bulochka
а вообще, в приведенном коде надо просто перенести переменную в глобальную зону, но есть сложности вида out of range.... решаемо, если в одном цикле срезать с переменной всё, что больше 2 часов.... грязный хардкод, но наиболее простое решение