使用线程在c中实现流量同步算法

时间:2018-10-19 13:15:06

标签: c multithreading pthreads semaphore condition-variable

所以我试图在c中实现流量同步算法,但我不知道从哪里开始。 规则如下

  1. 交叉路口处有四个交通信号灯,北,南,东和西路各有一个。一次只能发出一个交通信号灯。其余的灯将变成红色。
  2. 如果汽车在左车道上,则只能左转或直行。
  3. 向右转弯的汽车必须在正确的车道上。
  4. 如果相应的交通信号灯为红色,则直行或右转的汽车无法通过交叉路口,必须等待交通信号灯变为绿色。直行或右转的交通灯同时变为绿色。
  5. 如果前方没有等待绿灯的汽车,则汽车可能会向左转红灯。
  6. 交通信号灯保持绿色,直到每条车道的5辆等候的汽车穿过交叉路口或右转。如果每条车道的等待车辆少于5辆,则所有等待的车辆越过交叉路口或向右转时,交通信号灯就会变红。

此外,北,东南和西有四条路,汽车可以选择向左或向右直行。 输入将是汽车及其来源,目的地和车道。 例如car1(从北向南,在左侧);

我的问题是我应该如何实施 我应该为信号灯使用单个线程还是为每个线程使用4个线程 信号量或条件变量或互斥量或只是pthreads会有所帮助吗?或者其他 这些汽车也应该有单独的螺纹吗? 如何将控制权从一个信号传递到另一个?

0 个答案:

没有答案