我来自 SystemC 世界,我正在尝试用 Python 编写一些简单的代码。我想知道 Python 是否有类似于 peq_with_get() (来自 SystemC)的东西,它基本上是一个队列,保留了对事件的所有触发器。我开发了以下代码来测试它,但它似乎不起作用。想知道你们是否可以指导我了解 simpy 是否有事件队列。
import simpy
SIM_DURATION = 100
class SomeClass(object):
def __init__(self, env):
self.env = env
self.event_trig = self.env.event()
self.event_recvd = self.env.event()
simpy.events.Process( self.env, self._submit_loop() )
simpy.events.Process( self.env, self._complete_loop() )
def _submit_loop(self):
while True:
print('Waiting to Receive the Trigger')
yield self.event_trig
print('Event Received at Time %d' % env.now )
self.event_recvd.succeed()
def _complete_loop(self):
while True:
print('Trigger at time %d' % (env.now + 5) )
self.event_trig = self.env.timeout(5)
print('Trigger at time %d' % (env.now + 6) )
self.event_trig = self.env.timeout(6)
print('Trigger at time %d' % (env.now + 7) )
self.event_trig = self.env.timeout(7)
yield self.event_recvd
print('Current Time is %d. Wait for 10' % env.now)
yield self.env.timeout(10)
print('Start Sim')
env = simpy.Environment()
someCls = SomeClass( env )
env.run()