所以我试图在c中实现流量同步算法,但我不知道从哪里开始。
规则如下
- 交叉路口处有四个交通信号灯,北,南,东和西路各有一个。一次只能发出一个交通信号灯。其余的灯将变成红色。
- 如果汽车在左车道上,则只能左转或直行。
- 向右转弯的汽车必须在正确的车道上。
- 如果相应的交通信号灯为红色,则直行或右转的汽车无法通过交叉路口,必须等待交通信号灯变为绿色。直行或右转的交通灯同时变为绿色。
- 如果前方没有等待绿灯的汽车,则汽车可能会向左转红灯。
- 交通信号灯保持绿色,直到每条车道的5辆等候的汽车穿过交叉路口或右转。如果每条车道的等待车辆少于5辆,则所有等待的车辆越过交叉路口或向右转时,交通信号灯就会变红。
此外,北,东南和西有四条路,汽车可以选择向左或向右直行。
输入将是汽车及其来源,目的地和车道。
例如car1(从北向南,在左侧);
我的问题是我应该如何实施
我应该为信号灯使用单个线程还是为每个线程使用4个线程
信号量或条件变量或互斥量或只是pthreads会有所帮助吗?或者其他
这些汽车也应该有单独的螺纹吗?
如何将控制权从一个信号传递到另一个?