我有一个长代码(430行),用来模拟一个能源市场遵循特定的指导方针。
每个流程都有以下特定任务:
市场根据生产、消费和外部因素计算当前能源价格。
天气决定了市场上使用的温度和季节的随机变量。
我的代码中有一个问题,我创建了一个新线程来显示每天的模拟结果(每2秒经过一天),但我觉得我的代码没有正确地启动线程,我完全不知道问题到底发生在哪里以及原因。我使用了各种打印(“.”)来显示程序的运行位置,并确定它不在哪里,我看不出线程为什么不能正常启动。
我用的是Windows而不是Linux。如果这可能是问题所在,请告诉我。我将在下面展示一段代码片段,说明问题所在,以及完整的代码和一个pdf,更详细地解释项目应该如何在github链接中运行(430行代码似乎不适合在这里发布)。
def terminal(number_of_homes, market_queue, home_counter, clock_ready, energy_exchange_queue, console_connection, console_connection_2):
day = 1
while clock_ready.wait(1.5 * delay):
req1, req2, req3, req4 = ([] for i in range(4))
for i in range(number_of_homes):
a = market_queue.get()
req1.append(a)
req1 = sort(req1)
for i in range(number_of_homes):
a = market_queue.get()
req1.append(a)
req2 = sort(req2)
for i in range(number_of_homes):
a = market_queue.get()
req1.append(a)
req3 = sort(req3)
req1 = req1 + req2 + req3
for i in range(energy_exchange_queue.qsize()):
b = energy_exchange_queue.get()
req4.append(b)
req4 = sort(req4)
thread = threading.Thread(target = console_display, args = (number_of_homes, req1, day, req4, console_connection.recv(), console_connection_2.recv()))
thread.start()
thread.join()
day += 1
Github链接:
https://github.com/MaxMichel2/Energy-Market-Project