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



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

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

然而,现实世界的交通信号灯控制系统通常是用C等语言编写的,这些语言更擅长与控制器硬件接口。 这使您的问题毫无意义...有点。

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

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

编辑

实际上,"这取决于"是正确的答案,如果有的话。

简单的交通信号灯,例如人行横道,可以简单地阻塞等待按下按钮,然后完成循环并再次返回阻塞等待。

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

正如其他人提到的,在不知道您拥有的确切条件和约束的情况下,这是一项无用的练习。

但这是我的镜头:我可能会有 4 个线程:

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

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

  1. 根据流量将其变为红色/绿色的时间
  2. 在2-3条道路的任何交叉点上,每条道路的信号应同步。

等等...

所以这个问题没有固定的答案。

最新更新