1279. Traffic Light Controlled Intersection
On This Page
from threading import Lock
class TrafficLight:
def __init__(self):
self.lock = Lock()
self.road = 1
def carArrived(
self,
carId: int, # ID of the car
# ID of the road the car travels on. Can be 1 (road A) or 2 (road B)
roadId: int,
direction: int, # Direction of the car
# Use turnGreen() to turn light to green on current road
turnGreen: 'Callable[[], None]',
# Use crossCar() to make car cross the intersection
crossCar: 'Callable[[], None]',
) -> None:
self.lock.acquire()
if self.road != roadId:
self.road = roadId
turnGreen()
crossCar()
self.lock.release()