JustCaptain kod-buduschego
fe80956f3715cc5bb12053880d3a19c417fa9f37
Перейти к файлу
Код
kod-buduschego Python 2025-20264.5. Многопоточностьpracticesbrain_taskstask_1main.py
anc update c70a58f 8 октября 2026 г.
main.py
from threading import Thread


class Elevator:
    def __init__(self) -> None:
        self.current_floor: int = 1
        self.capacity: list = []
        self.is_go: bool = False
        self.queue: list[int | None] = []
        self.queue_id: int = 0

    def add_queue(self, target: int) -> None:
        self.queue.append(target)
        self.is_go = True

    def walk(self) -> None:
        while True:
            if len(self.queue):
                print(f"Идёт перемещени на этаж {self.queue[0]}")
                import time

                time.sleep(3)
                self.current_floor = self.queue[0]
                self.queue.pop(0)
                print(f"Текущий этаж: {self.current_floor}")
            else:
                print("Лифт стоит")
                import time

                time.sleep(4)

    def update_queue(self) -> None:
        self.queue[self.queue_id] = None
        self.queue_id += 1

    def run(self) -> None:
        th = Thread(target=self.walk)
        th.start()


class Employee:
    def __init__(self, current_floor: int) -> None:
        self.current_floor: int = current_floor

    def elevator_call(self, target_floor: int, elevator: Elevator) -> None:
        elevator.add_queue(target=target_floor)


elevator = Elevator()
elevator.run()
employee = Employee(current_floor=5)


employee.elevator_call(target_floor=10, elevator=elevator)