交通信号应用需要多少线程?

时间:2012-12-02 08:13:30

标签: java multithreading

开发交通信号应用程序需要多少线程? 我认为它只有一个,因为当任何一个灯呈绿色时,其他3个方向都是红色。对于此应用程序,不需要并行运行多个操作。

4 个答案:

答案 0 :(得分:2)

如果不知道整个申请的范围是什么,这个问题就无法有意义地回答。 (在简单的情况下,交通灯模拟当然可以在一个线程中实现......如果条件合适的话。)

然而,用于交通灯之类的事物的真实世界控制系统通常用C语言编写,这些语言更好地与控制器硬件连接。这使你的问题没有实际意义......那种。

答案 1 :(得分:1)

作为一名司机,我当然希望这只是一个线程!

您只需要一个线程,但想象一下非线程安全代码或线程错误的含义...... 有人可能真的死了!

被修改

实际上,“它取决于”是正确的答案,如果有的话。

简单的红绿灯,例如行人过路处,可能只是阻止按下按钮然后完成循环并再次返回阻塞等待。

可以接收许多输入的复杂事件驱动灯,如果硬件不支持中断或其他单线程机制来处理实时输入信号,则可能需要多个线程。

答案 2 :(得分:1)

正如其他人所说,这是一项无用的练习,但不知道你所拥有的确切条件和限制。

但这是我的镜头:我可能有4个主题:

  • 主线程 - 管理生命周期
  • 接收器线程 - 接收来自其他来源的事件,可能来自不同的硬件部件,如消防车“遥控器”,或来自附近交通灯的通信,以确定附近的交通信号灯是否同步。
  • Broadcaster thread - 将来自此特定交通信号灯的信号发送给其他消费者(其他交通信号灯,指挥和控制中心......)
  • 处理线程 - 委派处理从其他两个线程(Receiver,Broadcaster)发送和接收的事件。

答案 3 :(得分:0)

在一个非常微不足道的案例中是的。但通常交通信号取决于很多因素,如:

  1. 基于流量的红/绿时间
  2. 在2-3条道路的任何交叉点上,每条道路的信号应该同步。
  3. 等等......

    所以没有固定的答案。