tit*_*coy 3 c++ simulation event-driven
我正在完成Bjarne Stroustrup的C++编程语言中的一些练习.我对第12章末尾的问题11感到困惑:
(*5)设计并实现用于编写事件驱动模拟的库.提示:<task.h>....类任务的对象应该能够保存其状态并恢复该状态,以便它可以作为协程运行.可以将特定任务定义为从任务派生的类的对象.由任务执行的程序可以被定义为虚拟功能.......应该有一个实现虚拟时间概念的调度程序.......任务需要沟通.为此设计一个类队列....
我不确定这究竟是什么要求.任务是一个单独的线程吗?(据我所知,没有系统调用就不可能创建新的线程,因为这是一本关于C++的书,我不相信这是意图.)没有中断,如何启动和停止运行功能?我假设这将涉及忙等待(也就是说,连续循环并检查条件),虽然我看不出如何将其应用于可能不会终止一段时间的函数(例如,如果它包含无限循环) .
编辑:请参阅下面的帖子了解更多信息.
以下是我对"事件驱动模拟"的理解:
大多数生产事件驱动的模拟都在一个线程中运行.它们本质上可能很复杂,因此尝试同步多线程模拟往往会增加指数层的复杂性.话虽如此,有一个称为分布交互式仿真(DIS)的多进程军事模拟标准,它使用预定义的TCP消息在进程之间传输数据.
编辑:定义建模和模拟之间的差异非常重要.模型是系统或过程的数学表示.模拟是根据一段时间内执行的一个或多个模型构建的.同样,事件驱动的模拟在事件之间跳跃,而时间驱动的模拟在恒定的时间步骤进行.