开发交通信号应用程序至少需要多少线程?我认为它只有一个,因为当任何一个灯为绿色时,其他三个方向将为红色。对于这个应用程序,不需要并行运行多个操作。
问问题
935 次
4 回答
2
如果不知道整个应用程序的范围是什么,就无法有意义地回答这个问题。(在简单的情况下,交通灯模拟当然可以在单个线程中实现……如果条件合适的话。)
然而,现实世界中的交通信号灯控制系统通常是用 C 等语言编写的,这些语言更擅长与控制器硬件接口。这让你的问题没有实际意义……有点。
于 2012-12-02T08:21:35.873 回答
1
作为司机,我当然希望这只是一个线程!
你只需要一个线程,但想象一下非线程安全代码或线程错误的影响......
有人可能真的死了!
已编辑
实际上,“这取决于”是正确的答案,如果有的话。
简单的红绿灯,例如人行横道,可以简单地阻塞等待按钮按下,然后完成循环并再次返回阻塞等待。
如果硬件不支持中断或其他单线程机制来处理实时输入信号,则可以接收许多输入的复杂事件驱动灯可能需要多个线程。
于 2012-12-02T08:15:09.253 回答
1
正如其他人所提到的,在不知道您拥有的确切条件和限制的情况下,这是一项无用的练习。
但这是我的想法:我可能会有 4 个线程:
- 主线程——管理生命周期
- 接收线程——接收来自其他来源的事件,可能来自不同的硬件部分,比如消防车“遥控器”,或者来自附近交通信号灯的通信,以确定附近交通信号灯是否同步。
- 广播线程——将信号从这个特定的红绿灯发送到其他消费者(其他红绿灯、指挥和控制中心……)
- 处理线程——被委托处理从其他两个线程(接收器、广播器)发送和接收的事件。
于 2012-12-02T08:40:17.717 回答
0
在一个非常微不足道的情况下是的。但通常交通信号取决于许多因素,例如:
- 根据流量显示红/绿的时间
- 在2-3条道路的任何交叉点上,每条道路的信号应该是同步的。
以此类推……
所以这个问题没有固定的答案。
于 2012-12-02T08:21:02.550 回答