我有一个很长的代码(430行),用于遵循特定准则来模拟能源市场。
四个不同的过程:家庭,市场,天气,外部。
每个过程下面都有一个特定的任务:
房屋有一个生产和消费浮动值,一个整数交易策略,并计算每个房屋之间的能量交换(为模拟创建了多个房屋过程)。
市场根据生产和消耗以及外部因素计算当前的能源价格。
天气确定要在Market中使用的温度和季节的随机变量。
外部是Market的子流程,提供了我创建的随机外部因素。
我的代码中有一个问题,我创建了一个新线程来显示模拟每一天的结果(每2秒经过几天),但是我觉得我的代码无法正确启动该线程,我相当确切地知道问题发生在何处以及原因。我已经使用了各种print(“。”)来显示程序在哪里运行,并确定程序不在哪里,而且我看不到为什么线程无法正常启动。
我在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